[英]about the animation on the subview of UIScrollView
当我在滚动视图的子视图上添加一些动画,例如扩展或收缩文本字段时,它根本无法工作。 但是,当子视图添加到简单的UIView时,效果很好。
这是怎么发生的?
在UIScrollView
中为UITextField
的frame
设置动画应该没有问题。
在iOS 6中,“我的动画没有动画”的最常见来源是后来在使用自动布局时尝试通过调整frame
来使控件动画化(因为frame
的调整会因大多数人重新应用的约束而受挫。无害的行动)。 您可以通过在Interface Builder中选择最右边面板的File Inspector(第一个选项卡),然后查看是否选中了“ Use Autolayout”,来判断您是否正在使用自动布局:
例如,要在不使用自动布局时对frame
进行动画处理,假设您的UITextField
具有一个名为textField
的IBOutlet
,则可以执行以下操作:
[UIView animateWithDuration:0.5 animations:^{
CGRect frame = self.textField.frame;
frame.size.width = 280;
self.textField.frame = frame;
}];
但是,使用自动布局时的等效方法不是通过调整frame
来实现,而是通过更改约束的constant
量值来实现。 例如,假设您为UITextField
上的名为textFieldWidthConstraint
的width
约束创建了IBOutlet
,则可以使用类似以下内容的宽度变化动画:
self.textFieldWidthConstraint.constant = 280;
[UIView animateWithDuration:0.5 animations:^{
[self.view layoutIfNeeded];
}];
如果您认为自己正在使用与选择的自动布局或非自动布局相对应的适当动画技术,但仍然无法正常工作,则应向我们展示一些代码并详细描述这种情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.