打开窗帘:使用核心动画创建动画效果

5
我想制作一个开启的窗帘动画。我有两张图片:一张是窗帘左边的图片,另一张是右边的图片(用红色表示)。我想用核心动画平稳地将它们滑开。我应该寻找哪种动画类型?如何实现逼真的滑动效果?
问候,
斯蒂芬 alt text http://img.skitch.com/20100627-8ytxrbe64ccbruj49c2pbs7kt2.png
3个回答

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
最简单的解决方案是拥有两个ImageView或CGLayers,然后在动画块中使用CGAffineTransformTranslate将它们滑出屏幕。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接