ran*_*its 22 iphone cocoa cocoa-touch core-animation objective-c
我有点困惑何时在iPhone或Mac上使用CALayer以及何时不使用它?CoreAnimation可以在我的基于UIView的对象上正常工作,而无需使用CALayer.何时适合挖掘这门课程?
Bra*_*son 36
在我的基准测试中,UIView和CALayer在iPhone上提供了相同水平的性能.正如rpetrich在他的评论中提到的那样,UIViews是一个围绕CALayers的薄包装.在Mac上,CALayers比NSView轻得多.
正如Ben指出的那样,你可以通过直接使用CALayers来超越隐式动画的功能,甚至可以通过CATransform3D提供一些3D效果.在许多情况下,即使使用标准视图,您也可以通过访问支持层(如果视图是图层支持的)来执行此操作.
另一个问题是跨平台(Mac/iPhone)代码. 我的iPhone应用程序在很大程度上使用全CALayer接口作为其主视图,因为我可以使用完全相同的代码在其Mac对应物中绘制该接口.再举一个这样的例子,我将你引导到Core Plot框架,它完全使用CALayers绘制图形,并且可以在Mac和iPhone上运行.两个平台上的CALayers几乎相同,其中UIView和NSView具有非常不同的接口.
如果你可以用“隐式动画”(由 UIKit/AppKit 提供,无需深入研究 CA、图层和动画师)做你想做的事情,那么一定要走这条路。
当您开始使用更复杂的动画(例如非线性运动或重复效果以及某些同步效果)时,CoreAnimation 就会发挥作用。你可以用它做很多事情,但它是一个相当重型的工具(具有相称的学习曲线,至少与 UIKit 的东西相比)。
归档时间: |
|
查看次数: |
6974 次 |
最近记录: |