iOS最不卡顿的圆角图片的设置(UIImage分类)

为什么要加UIImage这个分类

在我们的项目中经常使用圆形图象图片 而我们的一般做法是这样的。把图片加载到imageView上,再设置imageView的属性 。
代码如下:

imageView.layer.cornerRadius= 8;(值越大,角就越圆)
imageView.layer.masksToBounds= YES;

这样设置如果很多页面设置这个不但代码冗余而且当页面展示过多的圆角图片时候可能还会造成卡顿现象所以增加了这个分类 直接在底层绘制出来在展示到页面上显示 废话不多述代码展示:

//- (instancetype)circleImage
{
// 开启图形上下文 (这个就用到前面的UIView的分类可以直接点出来)
UIGraphicsBeginImageContext(self.size);

// 获得上下文
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();

// 关闭图形上下文
UIGraphicsEndImageContext();

return image;
}

+ (instancetype)circleImageNamed:(NSString *)name
{
return [[self imageNamed:name] circleImage];
}

以后可以直接使用 [UIImage circleImageNamed: @”aa.png”]来设置圆角图片就可以啦

你可能感兴趣的:(OC,技术)