如何创建自定义页面卷曲核心动画?

时间:2009-09-28 20:02:08

标签: iphone cocoa-touch opengl core-animation page-curl

我正在尝试在iPhone应用程序中创建图像的“页面卷曲”动画。我是UIViewAnimationTransitionCurlUp,它是未记录的核心动画兄弟,但是我需要动画的图像是一个透明的PNG,带有“不均匀”(一些像素像素)轮廓。当使用上述预制转换时,动画开始时这些alpha像素会被涂成黑色,这看起来非常难看。

因此,我寻求创建自己的核心动画。我试图研究这个主题,但一直无法找到所涉及技术的良好概述。实现当然必须比单个属性更改更复杂,我觉得即使CATransform3D也会限制用于此目的,因为图像需要在其不同部分应用不同的3D转换 - 随时间变化。那怎么会谈到这个话题呢?我非常感谢任何想法或想法!

最佳, 利

2 个答案:

答案 0 :(得分:6)

正如Corey指出的那样,你可能需要使用OpenGL ES。 Core Animation公开了使用图层even in 3-D的能力,但是所有图层都只是矩形,它们就是这样操纵的。您可以animate the flipping of a layer about an axis,甚至with a perspective distortion,但您想要做的弯曲比使用核心动画API管理的更复杂。

您可以将图像分割成一个小图层网格,然后使用CATransform3D操作每个图像以创建这种弯曲效果,但此时您也可以使用OpenGL ES创建相同的效果。

答案 1 :(得分:0)

Pragmatic Programmer的书籍 Core Animation for Mac OS X and the iPhone: Creating Compelling Dynamic User Interfaces 可以帮助您编写自定义核心动画动画。