UIView动画与CALayers

Mel*_*emi 75 core-animation calayer caanimation uiviewanimation ios

我正在努力用CALayer概念化动画而不是UIView自己的动画方法.把" 核心动画 "扔进去,好吧,也许有人可以从高层次上清楚地表达这些概念,这样我就可以更好地想象发生了什么,以及为什么我想把UIView动画(我现在很熟悉)迁移到CALayer iPhone上的动画.Cocoa-Touch中的每个视图都会自动获取一个图层.而且,似乎你可以为一个和/或另一个制作动画?!?甚至将它们混合在一起?!?但为什么?线路在哪里?每个人的赞成/赞成是什么?

核心动画编程指南立即跳转到层和计时类,我认为需要退一步,理解为什么这些不同的部分存在以及如何相互关联.

Mat*_*ong 55

使用视图控制和图层糖果.图层不接收事件,因此对于这些情况使用视图更容易,但是当您想要为精灵或背景等设置动画时,图层是有意义的.事件直接通过图层传递到支持视图,因此您可以拥有非常直观的表示,而不会弄乱您的事件.尝试覆盖您刚刚用于视觉表示的视图,并且您必须自己将点击事件传递到底层视图.


Mar*_*pic 25

一个UIView总是被渲染到CALayer.当您使用UIView方法为视图设置动画时,您正在有效地操纵底层CALayer.

如果您需要做简单的事情,请使用这些UIView方法.对于更复杂的情境,或者如果您想要特别与任何视图无关的图层,请使用CALayers.


Chr*_*ett 21

我在过去的一年里做了很多应用程序.这是我的经验法则:

  1. 使用UIView直到它不能做你想要的.
  2. 然后转到CoreAnimation.但是在你进入太多之前......
  3. 如果您编写的动画不止一些,请使用Cocos2D.

  • 我建议不要使用Cocos2D,除非你正在编写游戏.我认为这确实是最好的用例.不过,我同意你应该尽可能长时间地使用UIView动画,并且除了使用CoreAnimation以外的任何东西. (13认同)

Dan*_*iel 9

UIView变换只是2D并且仅限于此,LAyer变换然而可以是3D,如果你想做3D东西你应该使用它们,如果你改变UIView变换或CALayer变换,UIView动画将起作用.因此,在基本级别,当您使用Layer而不是View时,可以进行更多操作.