ImageView 的 UIView 动画帧
Posted
技术标签:
【中文标题】ImageView 的 UIView 动画帧【英文标题】:UIView animate frame of ImageView 【发布时间】:2013-05-18 17:54:37 【问题描述】:我正在尝试在点击按钮时向 UIImageView 添加动画。当点击按钮时,我希望 imageView 在大小增加的同时向右移动。我试过这段代码,但 imageView 的动画不正确。
- (IBAction)bA:(id)sender
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
[UIView setAnimationDuration:0.5];
CGRect frame = imageView.frame;
frame.origin.x = frame.origin.x + 30;
frame.size.hight = frame.size.hight + 20;
frame.size.width = frame.size.width + 20;
imageView.frame = frame;
[UIView commitAnimations];
此代码使 imageView 稍微向右移动,然后再返回。奇怪的行为,我应该怎么做才能同时为大小和原点设置动画?
【问题讨论】:
【参考方案1】:问题是您打开了自动布局。使用自动布局,您无法更改某些内容的框架,因为布局会出现并再次将其更改回来。
要么关闭自动布局,要么通过更改此视图的约束而不是其框架来设置动画。
【讨论】:
这是我书中关于这个问题的部分:apeth.com/iosBook/ch17.html#_animation_and_autolayout 是否可以在一个特定的视图控制器上关闭自动布局? 如果您使用的是笔尖/xib,您可以关闭该笔尖的自动布局。或者,您可以通过说imageView.translatesAutoresizingMaskIntoConstraints = NO
来关闭此图像视图的自动布局。
这是我书中关于自动布局的部分:apeth.com/iOSBook/ch14.html#_autolayout
是的,可能。对于那个很抱歉。 - 如果您不想为整个笔尖/情节提要关闭自动布局,也许最好的解决方案是按照我之前的建议为约束设置动画(或将约束更改为动画的一部分)。自动布局使动画比以前复杂得多;他们是彼此的敌人。在我看来,这是 iOS 6 最大的问题。以上是关于ImageView 的 UIView 动画帧的主要内容,如果未能解决你的问题,请参考以下文章
android开发,ImageView加了逐帧动画。但放入WindowManager中,动画为啥实现不了
如何为 UIView 关键帧动画设置动画曲线(`func UIView.animateKeyframes()`)