使用自动布局约束从中心到顶部为 UIView 设置动画 swift 2.1
Animate UIView from center to top using autolayout constraings swift 2.1
我想在单击按钮时将 UITextField 从中心到视图顶部设置动画。 TextField 具有以下约束
以下是点击按钮将文本文件移动到顶部的代码。
UIView.animateWithDuration(0.5) {
self.txtfield.center.y = 10
}
上面的代码有效,textfield 移到了顶部,但是当我返回并再次来到这个视图时,textfield 再次位于中心。我是 swift 的新手,我希望将文本字段移至顶部后,它应该保持在顶部。
您应该在代码中获得对约束的引用。然后您改为更改约束的常量值。
我在 viewDidLoad
中添加了将文本字段移动到顶部的代码,但您当然会在按钮操作中包含此代码。您必须从 "Align Center Y" 拖到视图控制器中才能创建对约束的引用。我减去 10 的原因是因为您的示例和意图是与顶部有 10 个点的余量。请注意,我 "reversed" 第一项和第二项是这样的:
请记住,当您使用自动布局时,框架和中心以及视图边界的大小由自动布局约束设置。
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
}
}
}
我想在单击按钮时将 UITextField 从中心到视图顶部设置动画。 TextField 具有以下约束
以下是点击按钮将文本文件移动到顶部的代码。
UIView.animateWithDuration(0.5) {
self.txtfield.center.y = 10
}
上面的代码有效,textfield 移到了顶部,但是当我返回并再次来到这个视图时,textfield 再次位于中心。我是 swift 的新手,我希望将文本字段移至顶部后,它应该保持在顶部。
您应该在代码中获得对约束的引用。然后您改为更改约束的常量值。
我在 viewDidLoad
中添加了将文本字段移动到顶部的代码,但您当然会在按钮操作中包含此代码。您必须从 "Align Center Y" 拖到视图控制器中才能创建对约束的引用。我减去 10 的原因是因为您的示例和意图是与顶部有 10 个点的余量。请注意,我 "reversed" 第一项和第二项是这样的:
请记住,当您使用自动布局时,框架和中心以及视图边界的大小由自动布局约束设置。
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
}
}
}