UIView和CALayer
1: 从框架来说
CALayer 基于 QuartzCore 框架
UIView 基于 UIKit 框架
2: 从父类来说
使用CALayer同样可以实现与UIImageView一样的展示效果。那么到底有什么区别呢?
其实、CALayer是直接继承自NSObject的、而UIView是直接继承自UIResponder的。
所以、相比于CALayer来说、UIView多了一个事件处理功能、也就是说、CALayer是不能处理用户的触摸事件的、而UIView可以。
那么、当我们展示出来的东西需要实现和用户交互的时候去使用UIView、而不需要的交互的时候CALayer和UIView都可以。
当然、由于CALayer不需要处理交互事件、所以是轻量级的、性能要比UIView高。
3:最大的区别是图层(CALayer)不会直接渲染到屏幕上。
UIView是iOS系统中界面元素的基础,所有界面元素都是继承自它。它本身完全是由CoreAnimation来实现。
真正的绘图部分,是由一个CALayer类来管理。
一个UIView上可以由n个CALayer,每个CALayer显示一种东西,增强UIView的展现能力。
网友评论