iOS 离屏渲染

2021-04-21  本文已影响0人  七维树

原因

- a, b ,c ,d ,e  //渲染序列
- c = d + e //c 需要d和e渲染完成后,才能确定
- temp = d + e //临时开辟一块内存空间,存储d和e的渲染结果
- a, b ,temp //再把temp叠加到framebuffer中

离屏渲染常见的几种场景

需要在layer及其子layer都渲染完成后,在计算圆角需要剪裁的内容
需要先渲染出layer后,才能确定阴影,所以需要额外保存渲染layer后的状态,在渲染阴影
同样需要渲染出layer和子layer后才能确定mask内容
需要group内所有的layer渲染出来之后,在渲染做opacity透明度
需要底层内容和blur属性才能显示blur后的内容

一些解决办法

用shapeLayer,直接用圆角矩形,或者绘制圆角弧形盖在视图上
图片等用coreGraphics提前剪裁出圆角/或者美术提供
用shadowPath确定形状
使用layer mask并打开shouldRasterize来对渲染结果进行缓存
用CIFilter 的blur滤镜代替
上一篇 下一篇

猜你喜欢

热点阅读