摘要:
圆角是一种很常见的视图效果,相比于直角,它更加柔和优美,易于接受。设置圆角会带来一定的性能损耗,如何提高性能是一个需要重点讨论的话题。
大家常见的圆角代码`x.layer.cornerRadius = xx; x.clipsToBounds = YES;`这两行确实实现了圆角视觉效果。其实使用`x.layer.cornerRadius = xx;`已经实现了圆角,只不过在某些控件是不生效的,因为某些图层在被切割圆角图层之上而被显示出来了。而`x.clipsToBounds = YES;`带来的后果就是产生`离屏渲染`。可以使用instruments中的CoreAnimation工具,打开`Color Offscren-Rednered Yellow`选项,可见黄色区域部分即是离屏渲染部分。
那么离屏渲染会带来什么?当然后资源损耗,可能产生卡顿。因为在iPhone设备的硬件资源有差异,当离屏渲染不多时,并不是很明显感觉到它的缺点。 阅读全文