图片设置圆角

关于给图片设置圆角,普遍使用layer进行处理,简单方便;
但过多的渲染layer会导致降低app性能,拖慢了fps(特别是在cell中容易发觉)。

建议通过渲染画布的方式实现:

分类:
@implementation UIImage (RoundedCorner)

 - (UIImage *)imageWithRoundedCornersAndSize:(CGSize)sizeToFit a ndCornerRadius:(CGFloat)radius {
     CGRect rect = (CGRect){0.f, 0.f, sizeToFit};
     UIGraphicsBeginImageContextWithOptions(sizeToFit, NO, UIScr een.mainScreen.scale);
     CGContextAddPath(UIGraphicsGetCurrentContext(),      
     [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:radius].CGPath);     
     CGContextClip(UIGraphicsGetCurrentContext());
     [self drawInRect:rect];
     UIImage *output = UIGraphicsGetImageFromCurrentImageContext ();
     return output
}

- (void)drawRect:(CGRect)rect {
    CGRect bounds = self.bounds;      
   [[UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:8.0] addClip];[self.image drawInRect:bounds];
}
 
@end
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 对图片进行圆角处理会相比于直角,它更加柔和优美,是一种很常见的视图效果,在APP中常用于对用户头像的美化,但是设置...
    打瞌睡de小男孩阅读 11,248评论 4 22
  • 一般我们在iOS开发的过程中设置圆角都是如下这样设置的。 所有如果要高性能的设置圆角就需要找另外的方法了。下面是我...
    齐滇大圣阅读 15,105评论 29 98
  • 一般我们在iOS开发的过程中设置圆角都是如下这样设置的。 这样设置会触发离屏渲染,比较消耗性能。比如当一个页面上有...
    zgsddzwj阅读 3,744评论 0 1
  • iOS给图片设置圆角 通过设置layer的属性(最常用的方法) 最快速,但是影响性能,代码如下 通过CAShape...
    YanniLiu阅读 2,875评论 0 1
  • 中午陪宝宝从儿童医院出来的时候觉得天特别蓝,阳光明媚。一辆洒水车路过,水花在阳光的照射下显得格外活泼。李商隐...
    珊珊来驰阅读 1,409评论 0 0

友情链接更多精彩内容