• 最直接的方法就是使用如下属性设置:

1
2
3
imgView.layer.cornerRadius = 10;
// 这一行代码是很消耗性能的
imgView.clipsToBounds = YES;

**这是离屏渲染(off-screen-rendering),消耗性能的**

  • 给UIImage添加生成圆角图片的扩展API:这是on-screen-rendering

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
- (UIImage *)imageWithCornerRadius:(CGFloat)radius {
CGRect rect = (CGRect){0.f, 0.f, self.size};
 
UIGraphicsBeginImageContextWithOptions(self.size, NO, UIScreen.mainScreen.scale);
CGContextAddPath(UIGraphicsGetCurrentContext(),
 [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:radius].CGPath);
CGContextClip(UIGraphicsGetCurrentContext());
 
[self drawInRect:rect];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
 
UIGraphicsEndImageContext();
 
return image;
}

相关文章:

  • 2022-12-23
  • 2021-05-20
  • 2021-05-02
  • 2022-02-27
  • 2021-06-11
  • 2022-12-23
  • 2021-06-09
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-09-05
  • 2021-08-10
  • 2021-08-31
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案