iOS学习笔记:关于图层绘制

1. 需要注意,UIView的-drawRect:方法没有默认的实现,而且如果UIView检测到-drawRect: 方法被调用了,它就会为视图分配一个寄宿图,这个寄宿图的像素尺寸等于视图大小乘以 contentsScale的值。所以如果不需要寄宿图,有没有其他的绘制需求,那么不要在UIView的子类中写一个-drawRect:方法,因为会造成CPU和内存资源的浪费。

2. UIView在视图显示在屏幕的时候会自动调用CALayer的display方法,然后视图会在默认的基础上根据设置进行重绘。CALayer则不会在在屏幕上展示的时候自动刷新,控制权完全交给了开发者,第一次显示的时候只会是一个默认状态。

3. CALayerDelegate 除非创建了一个单独的图层,一般不会用到,UIView已经隐式的在创建Layer的时候把delegate设置为self并管理相关的重绘工作。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注