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

2017-06-20  本文已影响0人  Aldon丶

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

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

后来找到了一个属性

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

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

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

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

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

上一篇 下一篇

猜你喜欢

热点阅读