打开帷幕:动画与核心动画

时间:2010-06-27 17:11:19

标签: iphone cocoa-touch animation core-animation

我想制作一张可以打开的窗帘。我有两个图像:一个用于左侧,一个用于窗帘的右侧(用红色表示)。我想用Core Animation顺利地将它们移开。我应该寻找什么动画类型?如何实现逼真的滑动风格?

此致

的Stefan

alt text http://img.skitch.com/20100627-8ytxrbe64ccbruj49c2pbs7kt2.png

3 个答案:

答案 0 :(得分:5)

我不确定为什么人们建议使用翻译。如果您只需要滑动图像,只需在动画块内的每个图像视图上调用 -setCenter 即可。像这样:

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.0];
[leftCurtainImageView setCenter:pointOffScreenLeft];
[rightCurtainImageView setCenter:pointOffScreenRight];
[UIView commitAnimations];

其中pointOffScreenLeft和pointOffScreenRight的计算方式如下:

CGPoint pointOffScreenLeft = CGPointMake(
                 -[leftCurtainImageView bounds].size.width, 
                 [leftCurtainImageView frame].origin.y);

CGPoint pointOffScreenRight = CGPointMake(
                 [rightCurtainImageView frame].origin.x + 
                 [rightCurtainImageView bounds].size.width, 
                 [leftCurtainImageView frame].origin.y);

这些计算假设窗帘分别位于其包含视图的最左边和最右边。

答案 1 :(得分:1)

最简单的解决方案是必须使用imageview或CGLayers,然后在动画块中使用CGAffineTransformTranslate将它们滑出屏幕。

答案 2 :(得分:0)

经过长时间的搜索。我能找到的唯一方法就是这个。

enter image description here