iOS给UIImageView添加圆角的三种方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS给UIImageView添加圆角的三种方法相关的知识,希望对你有一定的参考价值。
参考技术A 在ios开发中我们经常会遇到给UIImageView添加圆角,如:给用户头像设置圆角等。在这里记录一下使用过的三种方法。方法一:通过设置UIView的layer来设置圆角
此方法的有个缺点是:会强制Core Animation提前渲染屏幕的离屏绘制, 而离屏绘制就会给性能带来负面影响,会有卡顿的现象出现
方法二:通过Graphics绘制图片,将图片裁剪成圆角
裁剪后设置图片即可
方法三: 依然是绘制图片,这次是通过贝塞尔曲线绘制图片
绘制后设置UIImageView的图片即可
以上设置图片圆角的三种方法,在使用过程中各有优缺点,需要根据实际情况具体判断使用方法。
另外推荐一下我的导航栏联动库: GKNavigationController
UIImageView添加圆角
- 最直接的方法就是使用如下属性设置:
imgView.layer.cornerRadius = 10; // 这一行代码是很消耗性能的 imgView.clipsToBounds = YES;
**这是离屏渲染(off-screen-rendering),消耗性能的**
-
给UIImage添加生成圆角图片的扩展API:这是on-screen-rendering
- (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; }
以上是关于iOS给UIImageView添加圆角的三种方法的主要内容,如果未能解决你的问题,请参考以下文章