设置图片圆角,解决画面卡顿现象

以前设置图片圆角,都是用下面这几句代码轻松搞定

imgView.layer.cornerRadius = 10;

// 这一行代码是很消耗性能的

imgView.clipsToBounds = YES;

这在实现功能上没有什么不同,但是在实现瀑布流这种大批量图片圆角处理时就会出现页面卡顿现象;

所以呢,问题来了。这时候有什么好的方法解决呢

别急!!!!马上呈上解决方案

怎么办呢?

方法一:(这个方法一定要写在Image的分类里面,并且圆角大小自己可控)

(UIImage *)yye_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;

}

方法二:(这时候自己想要一个切成圆的图片)

/* 设置圆形图片(放到分类中使用) /

(UIImage *)yye_cutCircleImage {

UIGraphicsBeginImageContextWithOptions(self.size, NO, 0.0);

// 获取上下文

CGContextRef ctr = UIGraphicsGetCurrentContext();

// 设置圆形

CGRect rect = CGRectMake(0, 0, self.size.width, self.size.height);

CGContextAddEllipseInRect(ctr, rect);

// 裁剪

CGContextClip(ctr);

// 将图片画上去

[self drawInRect:rect];

UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

return image;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容