iOS开发中我们会经常对图片进行切圆角操作,常见的做法是这样的:
myImgView.layer.cornerRadius = 25;
myImgView.layer.masksToBounds = YES;
其中masksToBounds(CALayer)表示视图的图层上的子图层,如果超出父图层的部分就截取掉;还有clipsToBounds(UIView),是指视图上的子视图,如果超出父视图的部分就截取掉。
在iOS9.0之前这样设置会触发离屏渲染,比较消耗性能。比如当一个页面上有十几头像这样设置了圆角,尤其是tableView中,大量操作会明显的感到页面的轻微卡顿。
GitHub上有不少开源的第三方,其中基本都是用了Core Graphics绘制圆角。其实只要在你的UIImageView的分类中加一个方法即可:
+ (UIImage *)imageWithRoundCorner:(UIImage *)sourceImage cornerRadius:(CGF