在开发中,经常需要给一些图片设置圆角,设置圆角的方法如下
- 修改layer图层的方法(离屏渲染):
self.iconImgView.layer.cornerRadius = self.iconImgView.ll_width / 2;
self.iconImgView.layer.masksToBounds = YES;
- 利用图形上下文裁剪图片:
[_iconView sd_setImageWithURL:[NSURL URLWithString:item.image_list] placeholderImage:[UIImage imageNamed:@"defaultUserIcon"] options:SDWebImageCacheMemoryOnly completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
// 1.开启图形上下文
// 比例因素:当前点与像素比例
UIGraphicsBeginImageContextWithOptions(image.size, NO, 0);
// 2.描述裁剪区域
UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, image.size.width, image.size.height)];
// 3.设置裁剪区域;
[path addClip];
// 4.画图片
[image drawAtPoint:CGPointZero];
// 5.取出图片
image = UIGraphicsGetImageFromCurrentImageContext();
// 6.关闭上下文
UIGraphicsEndImageContext();
_iconView.image = image;
注意点:
两种方法都可以设置圆角,但是在iOS 8之前,在列表中使用离屏渲染的方法会拖慢帧率,导致流畅度下降,所以不建议使用。iOS 8之后已经解决了该问题,所以两种方法都可以。
网友评论