UIView动画:收缩

时间:2010-03-21 22:17:46

标签: iphone cocoa-touch animation uikit

我希望让我的主视图缩小以显示下一个视图,就像按下左上角按钮时Facebook应用程序的视图缩小一样。我已经使用过这样的动画之一:

[UIView beginAnimations:nil context:nil];  
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];  
[UIView setAnimationDuration:1.0];  
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO];  
[self.navigationController popToRootViewControllerAnimated:YES];  
[UIView commitAnimations];

然而,由于“Shrink”不是其中一个动画,我有点卡住了。我怎么能这样缩小呢?

我对iPhone SDK非常有经验,但没有花很多时间使用UIView动画。

4 个答案:

答案 0 :(得分:2)

以下是我的教程,展示了如何在Facebook应用中制作扩展视图,请告诉我您的想法:

How to make expanding/shrinking views on iPhone SDK

亚当

答案 1 :(得分:1)

我使用了Adam的(感谢Adam)教程并从中创建了一个库。看看这个:https://github.com/goof/ios-animations。看看它是否有任何帮助!

答案 2 :(得分:0)

您是否尝试过组合缩放和转换转换?

答案 3 :(得分:0)

UIView的setAnimationTransition:方法使得打包的动画集很简单,但如果你想做其他事情,你必须下拉一个级别并使用Core Animation本身。

这不是太糟糕:基本上你使用CATransaction的begincommit方法,在它们之间,获取视图的图层并直接设置其转换属性。要缩小它,您可以将比例设置为0.00001,使其缩小。

您不必立即删除视图,而是必须设置完成块并在动画完成后自行删除它。如果您打算再次使用该视图,则可能需要将转换重置为正常。