动画UIView问题(将扩展动画与缩小动画相匹配)

时间:2010-03-03 11:07:16

标签: iphone animation uiview

我正在尝试为UIView设置动画,以便在点击按钮时可以变大,然后再次点击按钮缩小到原始尺寸。

我是通过将帧调整为新的大小和原点并运行下面的代码来实现的。

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.5];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
self.theView.frame = frame;
[UIView commitAnimations];

当制作更大尺寸的动画时,动画应该如何。但是当动画到原始大小(较小)时,视图会立即重新调整大小,然后动画到指定位置。

我需要的是调整较小帧的大小也是动画。

我也尝试过调整autoresizingMask,但这并没有改变任何东西。

希望有人可以提供帮助。

感谢。

4 个答案:

答案 0 :(得分:3)

Michiel,Raj,

我制作了一个youtube教程,展示了如何在Facebook iPhone应用程序中扩展和缩小视图。

希望它可以提供一些帮助:How to make expanding/shrinking views on iPhone SDK

亚当

答案 1 :(得分:0)

试试这个

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.5];
[UIView setAnimationRepeatAutoreverses:YES];
self.theView.frame = frame;
[UIView commitAnimations];

回复评论;

如果你想控制动画反向,有一个像BOOL isbig的标志,并在应用程序启动中设置为NO,然后在每个按钮点击切换它,然后检查它是否是或否,并根据结果调用一个方法。如果为NO,请调用您的代码,如果没有再次调用代码,则这次将帧设置为原始大小。

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.5];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
self.theView.frame = originalFrame;
[UIView commitAnimations];

答案 2 :(得分:0)

我可以通过其他线程中的建议解决问题,但它有其自身的局限性。我已将代码发布到建议解决方案的同一个线程中:

UIView scaling during animation

答案 3 :(得分:0)

我通过删除动画来释放我的应用程序时解决了这个问题。 它一直困扰着我,所以就在本周,我认为可能通过使用中心属性和大小而不是原点它会产生影响。

所以我决定测试一下。你猜怎么着。使用sdk 4.x

时不会发生此问题

感谢所有人试图帮助我。