第一种方法: 对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
网友评论