给UIView设置圆角时,传统方式都是设置layer的masksToBounds与cornerRadius值。殊不知,这种方式会触发离屏渲染(offscreen rendering),导致APP的帧率下降,特别是如果在cell上这么用,tableView滑动时特别耗性能,会有明显卡顿。(我也是瞎比比,不过大伙都这么说)
写了个分类,通过一句代码给UIView设置圆角。使用方式如下:
[imageV mj_setCornerRadius:25.0f]; // 无边框
[imageV mj_setCornerRadius:25.0f borderColor:[UIColorredColor] AndBorderWidth:1.0f]; // 含边框
实现思路:创建两个CAShapeLayer,路径通过贝塞尔曲线UIBezierPath绘制UIView的边缘路径path,一个ShapeLayer设置为UIView的遮罩,另一个加在UIView的layer层。
喜欢点个赞吧,MJCornerRadius