iOS UIImageView渲染
2017-03-02 15:01
405 查看
在UITaleView加载时总会滑动卡顿时原因之一就是图片的渲染,所以我就对UIImageView进行研究,我们以前的思路是根据贝塞尔曲线对图片进行处理
我发现一些UIImageView不常用的属性也可以缓解UIImageView渲染问题。
我们在滚动tableView时,如果每次都执行圆角设置,肯定会阻塞卡顿,设置这个将会使滑动更加流畅。
别忘了设置适当的rasterizationScale,否则在retina的设备上这些视图会成锯齿状。
UIImageView *imageView=[[UIImageView alloc]initWithFrame:CGRectMake(100,200, 100, 100)]; //imageView.layer.cornerRadius=50; //imageView.layer.masksToBounds=YES; UIImage *anotherImage = [UIImage imageNamed:@"FlyElephant.jpg"]; //注意第三个选项的设置 UIGraphicsBeginImageContextWithOptions(imageView.bounds.size, NO, [UIScreen mainScreen].scale); //在绘制之前先裁剪出一个圆形 [[UIBezierPath bezierPathWithRoundedRect:imageView.bounds cornerRadius:50] addClip]; //图片在设置的圆形里面进行绘制 [anotherImage drawInRect:imageView.bounds]; //获取图片 self.imageView.image = UIGraphicsGetImageFromCurrentImageContext(); //结束绘制 UIGraphicsEndImageContext(); [self.view addSubview:imageView];
我发现一些UIImageView不常用的属性也可以缓解UIImageView渲染问题。
shouldRasterize
当shouldRasterize设成true时,layer被渲染成一个bitmap,并缓存起来,等下次使用时不会再重新去渲染了。实现圆角本身就是在做颜色混合(blending),如果每次页面出来时都blending,消耗太大,这时shouldRasterize = yes,下次就只是简单的从渲染引擎的cache里读取那张bitmap,节约系统资源。我们在滚动tableView时,如果每次都执行圆角设置,肯定会阻塞卡顿,设置这个将会使滑动更加流畅。
UIImageView *imageViewimageView=[[UIImageView alloc]initWithFrame:CGRectMake(100,200, 100, 100)]; imageView.contentMode = UIViewContentModeScaleAspectFill; imageView.clipsToBounds = YES; [imageView setImage:[UIImage imageNamed:@"dress3.jpg"]]; imageView.layer.cornerRadius=50; imageView.layer.shouldRasterize = YES; imageView.clipsToBounds=YES; imageView.layer.rasterizationScale=[UIScreen mainScreen].scale; //不设置会模糊,不相信可以自己尝试 [self.view addSubview:imageView];
别忘了设置适当的rasterizationScale,否则在retina的设备上这些视图会成锯齿状。
相关文章推荐
- IOS_UIImageView图片自动拉伸
- iOS-UIImageView添加事件
- 【IOS】使用手势对UIImageView进行缩放、旋转和移动
- [iOS代码] 视图view如何截图 生成UIImage图片
- IOS开发(17)之UIImageView控件
- ios用 UIImageView实现图片幻灯片
- iOS开发26:UIImageView常用操作
- 【IOS】扩展UIImageViewEx实现:手势移动,旋转,缩放(附带一个收缩的文字标签功能)
- IOS为UIImageView图片添加点击事件
- IOS开发--给UIImageView添加touch事件
- 【IOS】扩展UIImageViewEx实现:手势移动,旋转,缩放(附带一个收缩的文字标签功能)
- ios中UIImageView展现图片的不同处理方式
- ios学习--结合UIImageView实现图片的移动和缩放(转)
- IOS:iPhone、iPad 拖动 UIImageView(随手指移动)
- ios UIImageView添加图片动画效果,添加了手势之后,依然没有反应的解决方法
- IOS使用UIImageView显示gif动画的例子
- IOS使用UIImageView显示gif动画的例子
- iOS 6编程-UIScrollView滚动视图结合UIImageView图像视图实现图像缩放效果
- IOS 结合UIImageView实现图片的移动和缩放
- iOS 第四章之UIImageView