【问题标题】:How do I create a custom page curl Core Animation?如何创建自定义页面 curl 核心动画?
【发布时间】:2009-09-28 20:02:08
【问题描述】:

我正在尝试在我的 iPhone 应用程序中创建图像的“页面卷曲”动画。它是 UIViewAnimationTransitionCurlUp,它是无证的核心动画兄弟姐妹,但是我需要动画的图像是透明的 PNG,具有“不均匀”(一些 alpha 像素)轮廓。在使用上述预制过渡时,这些 alpha 像素会在动画开始时立即涂黑,看起来非常难看。

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

最好, 以利

【问题讨论】:

  • 核心动画是 OpenGL 的抽象。所以过渡实际上是图层的 OpenGL 操作。我不确定是否有办法让您在 OpenGL 中定义自定义动画,然后在 CoreAnimation 框架中使用它。这就是我会首先研究的内容,看看是否可行。
  • 你有没有找到一个好的解决方案?
  • alku83,不是真的......最终用动画 UIImageView 覆盖屏幕。

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


【解决方案1】:

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

您或许可以将图像分割成一个由微小层组成的网格,并使用 CATransform3D 对每个层进行操作以创建这种弯曲效果,但此时您也可以使用 OpenGL ES 来创建相同的效果。

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 在这种情况下,它无济于事。 Core Animation 书很好地介绍了这项技术,并描述了您可以使用框架提供的各种层类型和动画来做什么,但没有达到他需要的那种极端定制。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-11
    • 2016-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多