/* When true, the layer is rendered as a bitmap in its local coordinate
* space ("rasterized"), then the bitmap is composited into the
* destination (with the minificationFilter and magnificationFilter
* properties of the layer applied if the bitmap needs scaling).
* Rasterization occurs after the layer's filters and shadow effects
* are applied, but before the opacity modulation. As an implementation
* detail the rendering engine may attempt to cache and reuse the
* bitmap from one frame to the next. (Whether it does or not will have
* no affect on the rendered output.)
*
* When false the layer is composited directly into the destination
* whenever possible (however, certain features of the compositing
* model may force rasterization, e.g. adding filters).
*
* Defaults to NO. Animatable. */
@property BOOL shouldRasterize;
/* The scale at which the layer will be rasterized (when the
* shouldRasterize property has been set to YES) relative to the
* coordinate space of the layer. Defaults to one. Animatable. */
@property CGFloat rasterizationScale;
如果在滚动tableView/collectionView时,每次都在cell中执行圆角设置,肯定会阻塞 UI,设置这个将会使滑动更加流畅。
当 shouldRasterize(光栅化)设成 true 时,layer被渲染成一个 bitmap,并缓存起来,等下次使用时不会再重新去渲染了。
实现圆角本身就是在做颜色混合(blending),如果每次页面出来时都blending,消耗太大,这时layer.shouldRasterize = YES,下次就只是简单的从渲染引擎的 cache 里读取那张 bitmap,节约系统资源。