簡體   English   中英

使用自動布局約束Swift 2.1從中心到頂部對UIView進行動畫處理

[英]Animate UIView from center to top using autolayout constraings swift 2.1

我想在單擊按鈕時從視圖的中心到頂部為UITextField設置動畫。 TextField具有以下約束

在此處輸入圖片說明

以下是單擊按鈕以將文本文件移到頂部的代碼。

 UIView.animateWithDuration(0.5) {
   self.txtfield.center.y = 10
  }

上面的代碼有效,textfiled移至頂部,但是當我返回並再次進入此視圖時,textfield再次位於中心。 我是新手,我想一旦文本字段移到頂部,它就應該放在頂部。

您應該在代碼中獲得對約束的引用。 然后,您改為更改約束的常量值。

我已經添加了將文本字段移至viewDidLoad頂部的代碼,但是您當然會在按鈕操作中包含此代碼。 您必須從“對齊中心Y”拖動到視圖控制器中,才能創建對約束的引用。 我減去10的原因是因為您的榜樣和意圖是要從頂部獲得10分的利潤。 並注意我像這樣“顛倒”了第一和第二項:

在此處輸入圖片說明

請記住,使用自動布局時,邊框和中心以及視圖邊界的大小是由自動布局約束設置的。

class ViewController: UIViewController {

    @IBOutlet weak var textFieldYAlignConstraint: NSLayoutConstraint!
    @IBOutlet weak var textField: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()

         UIView.animateWithDuration(1.2) { () -> Void in
        self.centeraligntConstraint.constant = -400
        self.view.layoutIfNeeded()// to animate layout constraint
    }

    }
}

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM