uitextfield动画宽度约束

时间:2014-11-19 02:27:20

标签: ios swift uitextfield autolayout nslayoutconstraint

我有这段代码来动画UITextField的宽度约束

self.myTextFieldWidthConstraint.constant = 200
UIView.animateWithDuration(2, delay: 0.0, options: UIViewAnimationOptions.CurveLinear, animations: { () -> Void in
    self.viewContainer.layoutIfNeeded()
}, completion: nil)

它运行正常,唯一的问题是如果文本字段中有文本,在动画期间它会缩小字符宽度,然后重新调整到正确的大小。占位符文本没有相同的问题。

这是一个gif:http://makeagif.com/mr4u1D

2 个答案:

答案 0 :(得分:0)

Fahim,您可以在为宽度更改设置动画之前通过重新设置第一个响应者来阻止文本缩放,例如:

[self.myTextField resignFirstResponder]

或者更一般地说:

[self.view endEditing:YES]

答案 1 :(得分:0)

这种情况正在发生,因为在进行动画时,场已经聚焦。我的假设是你在做动画:

func textFieldDidBeginEditing(textField: UITextField) 

但你应该在:

func textFieldShouldBeginEditing(textField: UITextField) -> Bool