我想在单击按钮时为 UITextField 从中心到 View 顶部设置动画。 TextField 有以下限制
以下是点击按钮将文本文件移动到顶部的代码。
UIView.animateWithDuration(0.5) {
self.txtfield.center.y = 10
}
上面的代码有效,textfiled 移动到顶部但是当我返回并再次来到这个 View 时,textfield 再次位于中心。我是 swift 的新手,我希望一旦将文本字段移至顶部,它就应该保持在顶部。
最佳答案
您应该在代码中获得对约束的引用。然后改为更改约束的常量值。
我已经在 viewDidLoad
中添加了将文本字段移动到顶部的代码,但您当然会在按钮操作中包含此代码。您必须从“Align Center Y”拖动到 View Controller 中才能创建对约束的引用。我减去 10 的原因是因为您的示例和意图是与顶部有 10 个点的余量。请注意,我像这样“颠倒”了第一项和第二项:
请记住,当您使用自动布局时,框架和中心以及 View 边界的大小由自动布局约束设置。
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
}
}
}
关于ios - 使用自动布局约束 swift 2.1 从中心到顶部为 UIView 设置动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34531491/