iOS开发中更好的设置圆角图片的方法

在iOS开发初期在设置圆角图片的时候总是会使用两句代码:

self.imageView.layer.cornerRadius = 5.0f;

self.imageView.layer.masksToBounds = YES;

可听说这两句代码会有问题,问题:会强制Core Animation提前渲染屏幕的离屏绘制, 而离屏绘制就会给性能带来负面影响,会有卡顿的现象出现,尤其在这样设置的圆角图片比较多的时候,如每个cell上都有一个圆角头像。(本人暂时还没发现这个问题,而且在面试的时候我还被问过这个问题)

利用画的方式设置圆角图片就可以避免上面的问题,我将具体的实现放到了UIImage的一个分类中,具体代码:

- (UIImage *)circleImageWithSize:(CGSize)imageSize andImage:(UIImage *)originalImage{     // NO代表透明     UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0.0);     // 获得上下文     CGContextRef ctx = UIGraphicsGetCurrentContext();     // 添加一个圆     CGRect rect = CGRectMake(0, 0, imageSize.width, imageSize.height);     CGContextAddEllipseInRect(ctx, rect);     // 裁剪     CGContextClip(ctx);     // 将图片画上去     [originalImage drawInRect:rect];     UIImage *image = UIGraphicsGetImageFromCurrentImageContext();     // 关闭上下文     UIGraphicsEndImageContext();     return image; }

demo地址:https://gitee.com/liangsenliangsen/circleImage 

本篇文章到这里就结束了,愿大家加班不多工资多,男同胞都有女朋友,女同胞都有男朋友。

你可能感兴趣的:(iOS开发中更好的设置圆角图片的方法)