iOS的图片圆角处理方式对比

第一种方法: 对layer做手脚

性能:对图层的圆角做太多操作和渲染会很卡,特别是圆角跟阴影的时候

//  半径为控件尺寸一半
self.imageView.layer.cornerRadius = self.imageView.frame.size.width * 0.5;
self.imageView.layer.masksToBounds = YES;

第二种方法:(建议使用)

性能:效率高,性能佳

#import "UIImage+extension.h"

@implementation UIImage (extension)

//  圆形图片
- (UIImage *)circleImage
{
    //  NO 代表透明
    //  开启图形上下文
    UIGraphicsBeginImageContextWithOptions(self.size, NO, 0);
    
    //  获得上下文
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    
    //  添加一个圆
    CGRect rect = CGRectMake(0, 0, self.size.width, self.size.height);
    CGContextAddEllipseInRect(ctx, rect);
    
    //  裁剪
    CGContextClip(ctx);
    
    //  将图片画上去
    [self drawInRect:rect];
    
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    
    return image;
}

@end

你可能感兴趣的:(iOS的图片圆角处理方式对比)