iOS开发-UIImageView高效设置Radius
圆角的设置在iOS中随处可见,开发的时候也很方便,但是有的时候如果一个页面有大量的需要设置圆角的图片,容易产生性能问题,UIImageView ios9.0之前设置圆角是会产生离屏渲染的,9.0之后不会产生离屏渲染
因此需要日常设置圆角的方法上加一些改动:
1.最简单的图片圆角设置:
1 2 3 4 5 | self.imageView=[[UIImageView alloc]initWithFrame:CGRectMake(100,200, 100, 100)]; [self.imageView setImage:[UIImage imageNamed: @"FlyElephant.jpg" ]]; self.imageView.layer.cornerRadius=50; self.imageView.layer.masksToBounds=YES; [self.view addSubview:self.imageView]; |
2.设置Rasterize栅格化处理,会将图片放在缓存区,不会不断的进行图片渲染:
1 2 3 4 5 6 7 | self.imageView=[[UIImageView alloc]initWithFrame:CGRectMake(100,200, 100, 100)]; [self.imageView setImage:[UIImage imageNamed: @"dress3.jpg" ]]; self.imageView.layer.cornerRadius=50; self.imageView.layer.shouldRasterize = YES; self.imageView.clipsToBounds=YES; self.imageView.layer.rasterizationScale=[UIScreen mainScreen].scale; //不设置会模糊,不相信可以自己尝试 [self.view addSubview:self.imageView]; |
3.UIBezierPath贝塞尔曲线绘制(推荐)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | self.imageView=[[UIImageView alloc]initWithFrame:CGRectMake(100,200, 100, 100)]; UIImage *anotherImage = [UIImage imageNamed: @"FlyElephant.jpg" ]; //注意第三个选项的设置 UIGraphicsBeginImageContextWithOptions(self.imageView.bounds.size, NO, [UIScreen mainScreen].scale); //在绘制之前先裁剪出一个圆形 [[UIBezierPath bezierPathWithRoundedRect:self.imageView.bounds cornerRadius:50] addClip]; //图片在设置的圆形里面进行绘制 [anotherImage drawInRect:self.imageView.bounds]; //获取图片 self.imageView.image = UIGraphicsGetImageFromCurrentImageContext(); //结束绘制 UIGraphicsEndImageContext(); [self.view addSubview:self.imageView]; |
参考资料:http://stackoverflow.com/questions/11049016/cliptobounds-and-maskstobounds-performance-issue
http://stackoverflow.com/questions/17593524/using-cornerradius-on-a-uiimageview-in-a-uitableviewcell
作者:FlyElephant
出处:http://www.cnblogs.com/xiaofeixiang
说明:博客经个人辛苦努力所得,如有转载会特别申明,博客不求技惊四座,但求与有缘人分享个人学习知识,生活学习提高之用,博客所有权归本人和博客园所有,如有转载请在显著位置给出博文链接和作者姓名,否则本人将付诸法律。
出处:http://www.cnblogs.com/xiaofeixiang
说明:博客经个人辛苦努力所得,如有转载会特别申明,博客不求技惊四座,但求与有缘人分享个人学习知识,生活学习提高之用,博客所有权归本人和博客园所有,如有转载请在显著位置给出博文链接和作者姓名,否则本人将付诸法律。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述