我想动画一个窗帘,它被打开。我有两个图像:一个用于左侧,另一个用于窗帘的右侧(用红色表示)。我想用Core Animation顺利地将它们滑开。我应该寻找哪种动画类型?我如何获得逼真的滑动风格?打开窗帘:动画与核心动画
问候,
的Stefan
alt text http://img.skitch.com/20100627-8ytxrbe64ccbruj49c2pbs7kt2.png
我想动画一个窗帘,它被打开。我有两个图像:一个用于左侧,另一个用于窗帘的右侧(用红色表示)。我想用Core Animation顺利地将它们滑开。我应该寻找哪种动画类型?我如何获得逼真的滑动风格?打开窗帘:动画与核心动画
问候,
的Stefan
alt text http://img.skitch.com/20100627-8ytxrbe64ccbruj49c2pbs7kt2.png
的最简单的解决办法是有向的ImageView或CGLayers然后使用CGAffineTransformTranslate在动画block滑动它们关闭屏幕。
我不确定为什么人们建议使用翻译。如果您只需滑动图像,只需在动画块内的每个图像视图上调用-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);
上述计算假设窗帘分别位于最左边和最右边的边包含它们的看法。