【发布时间】:2016-09-13 11:57:51
【问题描述】:
我遇到了一个问题:我有一个非常简单的自定义 UIView,它将一个 UITextField 和一个 UILabel 分组。
UILabel 在UITextField 上,我希望UILabel 在用户开始编辑UITextField 时达到40px。
我正在使用约束来设置文本字段的框架和标签的框架。
所以我只是在我的自定义视图中使用UITextFieldDelegate 协议设置委托,并实现委托方法:textFieldDidBeginEditing,如下所示:
我只是在委托方法中为我的标签的约束(中心 Y)设置动画。
func textFieldDidBeginEditing(textField: UITextField) {
self.centerVerticallyLabelConstraint.constant = -40
UIView.animateWithDuration(0.5) {
self.textFieldLabel.layoutIfNeeded()
}
}
发生的情况是UILabel 正确上升,但它立即上升。它忽略了我动画中0.5 的持续时间。我不知道为什么:
我没有同时制作其他动画,我只有这个动画。
我没有禁用 UIView. 的动画
代理设置为我的UITextfield。
有什么想法吗?
【问题讨论】:
标签: ios swift animation uiview uiviewanimation