1.利用UIImageView绘制(最简单)
UIImageView* imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"canna"]];
imageView.layer.masksToBounds = YES;
imageView.layer.cornerRadius = imageView.frame.size.width * 0.5;
此方法最简单,但是性能较差。
2.利用UIImage绘制(性能最佳)
// 1.开启一个透明上下文(必须选择透明上下文,否则圆形区域之外将会被填充上其他颜色)
UIGraphicsBeginImageContextWithOptions(self.size, NO, 0.0f);
// 2.加入一个圆形路径到图形上下文
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGRect rect = CGRectMake(0, 0, self.size.width, self.size.height);
CGContextAddEllipseInRect(ctx, rect);
// 3.裁剪
CGContextClip(ctx);
// 4.绘制图像
[self drawInRect:rect];
// 4.取得图像
UIImage* circleImage = UIGraphicsGetImageFromCurrentImageContext();
// 5.关闭上下文
UIGraphicsEndImageContext();
此方法是对UIImage方法的扩展,性能较佳,比较推荐。