如何创建自定义的页面翻页核心动画?

10
我正在尝试创建一个“翻页”动画来展示我的iPhone应用程序中的图像。我使用了UIViewAnimationTransitionCurlUp及其未公开的核心动画兄弟,但我需要动画的图像是一个透明的PNG图像,带有“不平坦”的(一些Alpha像素)轮廓。当使用上述预制转换时,那些Alpha像素在动画开始时就会被涂成黑色,看起来非常丑陋。
因此,我想自己创建一种核心动画。我已经尝试过研究这个主题,但一直无法找到有关涉及技术的好概述。实现当然必须比单个属性更复杂,我觉得甚至CATransform3D也可能对此目的太过受限,因为图像需要在不同的部分应用不同的3D变换 - 随着时间改变。那么该如何处理这个主题呢?我非常感谢任何想法或建议!
最好, Eli

1
核心动画是OpenGL的抽象。因此,过渡实际上是层的OpenGL操作。我不确定是否有一种方法可以在OpenGL中定义自定义动画,然后在CoreAnimation框架中使用它。这是我首先要研究的,看看是否可能。 - Corey Floyd
你有没有找到一个好的解决方案? - Ben Williams
alku83,不是很好...最后用一个带动画的UIImageView覆盖了屏幕。 - eliego
2个回答

6
作为Corey所指出的,你可能需要使用OpenGL ES。Core Animation提供了与图层一起工作的功能,即使是在三维空间中, 但所有的图层都只是矩形,并按此进行操作。你可以围绕轴线翻转一个图层进行动画处理,甚至带有透视失真效果,但你想要实现的弯曲效果比你使用Core Animation API可以管理的更加复杂。
你可以将图像分割成微小的图层网格,并使用CATransform3D来操纵每个图层以创建这种弯曲效果,但那时你可能还不如使用OpenGL ES来创建相同的效果。

0

4
在这种情况下,它并没有什么帮助。《核心动画》一书是介绍这项技术的好入门读物,它描述了你可以通过这个框架提供的各种图层类型和动画实现的功能,但它没有涉及到他所需的极端自定义内容。 - Brad Larson

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