简单的来说UIView是对CALayer的一个封装
出自 WWDC 2012: iOS App Performance: Graphics and Animations- CALayer负责显示
contents
,UIView为其提供内容,以及负责处理触摸等事件和逻辑,参与响应事件链。CALayer的结构如下
CALayer有三个视觉元素,实际上中间的contents
它必须是一个CGImage
才能显示。
当生成一个视图对象并添加到屏幕上时,从CALayer的结构可以知道,这个视图的layer的三个视图元素是:contents
为空,背景色为透明色,前景框宽度为0,就是从视觉上看不到任何东西。UIView很大程度上可以看是做一张图片(CGImage)。
UIImageView
既然CALayer的contents
属性赋值一个CGImage就能显示图片,那么可以猜测到UIImageView的结构是:
实际上UIImage就是对CGImage的一个轻量级封装。
网友评论