Ios uitextfield设置宽度约束动画

Ios uitextfield设置宽度约束动画,ios,swift,uitextfield,autolayout,nslayoutconstraint,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: n

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

self.myTextFieldWidthConstraint.constant = 200
UIView.animateWithDuration(2, delay: 0.0, options: UIViewAnimationOptions.CurveLinear, animations: { () -> Void in
    self.viewContainer.layoutIfNeeded()
}, completion: nil)
它工作正常,唯一的问题是,如果文本字段中有文本,则在动画期间,它会缩小角色宽度,然后重新调整到正确的大小。占位符文本没有相同的问题


这是一个gif:

Fahim,您可以通过在设置宽度更改动画之前重新调整第一响应程序来防止文本缩放,例如:

[self.myTextField resignFirstResponder]
或者,更一般地说:

[self.view endEditing:YES]

之所以会发生这种情况,是因为在制作动画时场已经聚焦。我的假设是,您正在以下位置制作动画:

func textFieldDidBeginEditing(textField: UITextField) 
但你应该在以下方面做:

func textFieldShouldBeginEditing(textField: UITextField) -> Bool

您是否使用drawrect绘制文本?我认为您无法将文本动画与UITextField动画分开。检查此问题以了解解决方法:我无法重现此问题,请参阅@Thomas 2重现所需的条件:字段和焦点中的文本(第一响应者)。