在开发中我们经常会用到头像,但是系统的UIimageview默认是矩形,然而实际开发中一般都是需要将头像设置为圆形,今天我和大家聊两种比较常见的设置圆形头像的方法。
第一种:设置UIimageview的棱角。代码很简单:
//头像的宽高必须是一致的
CGFloat height = 40.0;
UIImageView *icon = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, height, height)];
//cornerRadius必须为高的一半
icon.layer.cornerRadius = height * 0.5;
icon.layer.masksToBounds = YES;
这种方式的优点是非常的简洁,但是图片依旧是方形,这种适用于只用于显示的圆形头像。但有的时候,我们为了减轻服务器端的压力,要求用户将图片剪切成圆形再上传至服务器,这个时候我们就要用到第二种方式,用绘图将图片裁剪成圆形,代码如下:
+(UIImage *)imageTurntoCircle:(UIImage *)image
{
//1.获取图片上下文
UIGraphicsBeginImageContextWithOptions(image.size, NO, 0);
//2.获取上下文
CGContextRef ctx = UIGraphicsGetCurrentContext();
//3.画圆
CGContextAddEllipseInRect(ctx, CGRectMake(0, 0, image.size.width, image.size.height));
//4.设置只有圆内范围可见
CGContextClip(ctx);
//5.绘制图片
[image drawAtPoint:CGPointMake(0, 0)];
//6.获取图片
UIImage *finalimagr = UIGraphicsGetImageFromCurrentImageContext();
return finalimagr;
}
这种方式的好处就在于处理完后的图片是真正的圆形图片,同时图片所占的内存也小了,有效地减轻服务器的压力。