0
点赞
收藏
分享

微信扫一扫

iOS开发中的离屏渲染

代码敲到深夜 2021-09-19 阅读 79


原图地址:https://zhuanlan.zhihu.com/p/72653360

离屏渲染

为什么尽量避免离屏渲染?

多开辟了临时的内存空间。
可能造成卡顿,上下文切换比较耗性能,如果GPU耗时过多,就可能会造成卡顿。

为什么需要离屏渲染

有时可以优化性能。
CALayer的shouldRasterize属性可以强制离屏渲染。
Rasterization会使用GPU将多个Layer绘制到一个image(Texture)中,并且这个image是会缓存的,以便后续直接使用缓存进行渲染。

设置圆角是否肯定导致离屏渲染?

UIImageView设置图片不会触发离屏渲染
UIView设置了背景颜色,但不添加subview,不会触发离屏渲染
UILabel设置了文字,并且设置了backgroundColor,会触发离屏渲染
UIButton只设置文字和背景,会触发离屏渲染

发生离屏渲染的情况

  1. 毛玻璃效果
  2. 光栅化
  3. 阴影(如果设置了shadowPath,不会触发离屏渲染)
  4. 抗锯齿
举报

相关推荐

0 条评论