现在的位置: 首页 > 综合 > 正文

ios 视图渲染架构和原理

2013年02月20日 ⁄ 综合 ⁄ 共 678字 ⁄ 字号 评论关闭

1. ios通过视图来展示屏幕上的内容,但是UIView类的许多基础行为却严重依赖于另外一个对象。 UIKit每个视图对象的背后都有一个CoreAnimation层对象,它是一个CALayer类的实例,该类为视图内容的渲染,布局,合成以及动画提供基础性的支持。


2. 和Mac OS不同的是, ios将CoreAnimation集成到视图渲染实现的核心。 由于SDK中UIKit提供了透明的接口,开发者大部分情况下,不必去关心和直接访问CoreAnimation。 但是如果要实现特别复杂的渲染和动画,就需要使用到CoreAnimation的接口支持了。


CoreAnimation的基础

1. CoreAnimation利用了硬件加速和架构上的优化来实现了快速渲染和实时动画。


2. 当视图的drawRect方法首次被调用时,层会将描画的结果捕捉到一个位图中,并在随后的重绘时,尽可能使用这个位图,以避免开销太大。


3. CoreAnimation把和视图对象相关联的层存储在层树的层次结构中。 可以在层树中添加特殊层,实现不同的效果。


4. 层对象是IOS渲染和布局系统的推动力,大多数视图属性实际上是其层对象属性的一个很薄的封装。


5. 表示树: 层在展示给用户时当前的状态。

    渲染树:运行在单独的线程上,不影响app主线程, 实现动画渲染效果。

6. 缺点: 由于层需要额外的缓存数据,因此会耗费更多的内存。



动画:

1. UIView对象中支持动画的几个属性:   frame,  bounds,  center,  transform,  alpha



参考资料:  《iPhone应用编程指南》—— Apple Inc

抱歉!评论已关闭.