本文主要是介绍UIImageView裁剪成圆形的方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
我知道的实现方法有三种。
1、通过image mask来操作,需要添加mask目标图片。
2、通过imageview的layer来操作
如下代码
1 2 3 4 5 6 7 8 9 10 | UIImageView *imageView= (UIImageView*)[statusView viewWithTag: 4001 ]; [imageView setImageWithURL:[NSURL URLWithString:imageUrlString]]; imageView.layer.masksToBounds=YES; //图片自身宽度除以2可设置为圆形 imageView.layer.cornerRadius= 30 / 2.0 ; //边框 [imageView.layer setBorderWidth: 1 ]; imageView.layer.borderColor=[UIColor whiteColor].CGColor; //边框的颜色 statusView.backgroundColor=[UIColor clearColor]; |
a.这种方法需要添加QuarztCore框架才能操作
b.cornerradus的确定问题
3、能过代码对画布裁剪成圆形–》然后再将原始图像画出来–》
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | -(UIImage*) circleImage:(UIImage*) image withParam:(CGFloat) inset { UIGraphicsBeginImageContext(image.size); CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetLineWidth(context, 2 ); CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor); CGRect rect = CGRectMake(inset, inset, image.size.width - inset * 2 .0f, image.size.height - inset * 2 .0f); CGContextAddEllipseInRect(context, rect); CGContextClip(context); [image drawInRect:rect]; CGContextAddEllipseInRect(context, rect); CGContextStrokePath(context); UIImage *newimg = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return newimg; } |
上面代码注意 如果裁剪后没有使用 CGContextAddEllipseInRect(context, rect);
CGContextStrokePath(context); 这条代码 就会引起背景为白色时看不出来任务效果。
这里是椭圆操作
这篇关于UIImageView裁剪成圆形的方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!