补充:在iOS中,画圆角并不一定不会发生离屏渲染离屏渲染触发原理在APP的一个View中,需要进行额外的渲染和合并时,系统会自动开辟Off-Screen Buffer(离屏缓冲区) 和 FrameBuffer(帧缓冲区)组合搭配渲染,最后才显示在屏幕上,这个过程就触发了离屏渲染。如绘制圆角:一个UIButton中,存在多个Layer层,backgroundColor,backgroundImage,border等,需要都绘制圆角时则就会触发离屏渲染。如果仅仅是对backgroundImage or border 单一Layer绘制圆角,则不会触发离屏渲染
APP渲染流程:APP在60FPS的屏幕显示时,GPU会从数据存放帧缓冲区,在60帧时间里,循环读取数据并显示
CoreAnimation 渲染
画家算法:渲染图层由远及近的一层一层渲染,就会有多个图层。绘制多图层圆角的两种渲染逻辑
而苹果是不建议使用多层次图层,会引发性能问题
常见触发离屏渲染情况
常见触发离屏渲染情况.png
推荐了解YYImage的圆角处理方案,避免离屏渲染的发生
YYImage圆角处理
文章推荐
处理方案1.png
处理方案2.png
处理方案3.png
欢迎光临 firemail (http://firemail.wang:8088/) | Powered by Discuz! X3 |