怎样解决圆角或者阴影造成的push卡顿

在做项目时,一个tableview  push跳转卡壳了,每次push的时候都会变缓慢、卡顿,看起来极为难受!

究其原因,必然是UI渲染的性能问题,因为每个cell都需要加阴影,切圆角,性能消耗巨大。

后来找到了一个属性

view.layer.shouldRasterize = YES;//缓存

当 shouldRasterize 设成 true 时,layer 被渲染成一个 bitmap,并缓存起来,等下次使用时不会再重新去渲染了。实现圆角本身就是在做颜色混合(blending),如果每次页面出来时都blending,消耗太大,这时shouldRasterize = yes,下次就只是简单的从渲染引擎的 cache 里读取那张 bitmap,节约系统资源。

tableview滚动时,重用cell,每次都要去切圆角,加阴影,的确消耗巨大,会阻塞UI的线程。

但是要注意的一点:该属性会造成该视图的图像模糊,以至于影响到子视图。

使用时应 避免在该view上添加子视图。不然你会发现你的控件全都模糊不清😆

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容