Categories: 技术原创

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

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

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

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

龚杰洪

Recent Posts

GOLANG面试八股文-并发控制

背景 协程A执行过程中需要创建…

10 月 ago

MYSQL面试八股文-常见面试问题和答案整理二

索引B+树的理解和坑 MYSQ…

10 月 ago

MYSQL面试八股文-InnoDB的MVCC实现机制

背景 什么是MVCC? MVC…

10 月 ago

MYSQL面试八股文-索引类型和使用相关总结

什么是索引? 索引是一种用于加…

10 月 ago

MYSQL面试八股文-索引优化之全文索引(解决文本搜索问题)

背景:为什么要有全文索引 在当…

10 月 ago