ZenonHuang的头像
iOS @ Alibaba
ZenonHuang的头像
iOS @ Alibaba
ZenonHuang的头像
iOS @ Alibaba
ZenonHuang的头像
iOS @ Alibaba
赞了这篇沸点
面试必考题😁:为什么圆角和裁剪后iOS绘制会触发离屏渲染? 答:默认情况下每个视图都是完全独立绘制渲染的。而当某个父视图设置了圆角和裁剪并且又有子视图时,父视图只会对自身进行裁剪绘制和渲染。当子视图绘制时就要考虑被父视图裁剪部分的绘制渲染处理,因此需要反复递归回溯和拷贝父视图的渲染上下文和裁剪信息,再和子视图做合并处理,以便完成最终的裁剪效果。这样势必产生大量的时间和内存的开销。解决的方法是当父视图被裁剪和有圆角并且有子视图时,就单独的开辟一块绘制上下文,把自身和所有子视图的内容都统一绘制在这个上下文中,这样子视图也不需要再单独绘制了,所有裁剪都会统一处理。当父视图绘制完成时再将开辟的缓冲上下文拷贝到屏幕上下文中去。这个过程就是离屏渲染!!所以离屏渲染其实和我们先将内容绘制在位图内存上下文然后再统一拷贝到屏幕上下文中的双缓存技术是非常相似的。使用离屏渲染主要因为iOS内部的视图独立绘制技术所导致的一些缺陷而不得不才用的技术。
展开
评论
ZenonHuang的头像
iOS @ Alibaba
ZenonHuang的头像
iOS @ Alibaba
下一页
个人成就
文章被点赞566
文章被阅读57,121
掘力值1,137
收藏集
8
关注标签
6
加入于