一、经过image mask来操做,须要添加mask目标图片。 二、经过imageview的layer来操做 以下代码 UIImageView * imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"]]; imageView.frame = CGRectMake(20.f, 20.f, 100.f, 100.f); imageView.layer.masksToBounds = YES; imageView.layer.cornerRadius = 50; a.这种方法须要添加QuarztCore框架才能操做 b.cornerradus的肯定问题 三、能过代码对画布裁剪成圆形–》而后再将原始图像画出来–》 -(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); 这条代码 就会引发背景为白色时看不出来任务效果。 这里是椭圆操做