关于imageView设置圆角的性能问题

我们在cell中,经常需要设置imageView的圆角。但是你如果把cornerRadius和masksToBounds放在一起用,则会导致离屏渲染,影响性能。下面给出一个不影响性能的设置圆角方法,具体看这个DEMO

UIImage *image = [[UIImage imageNamed:@"callAd-03.jpg"] circleImage];
//当使用大图片时请用这个方法,不会有缓存 
NSString *path = [[NSBundle mainBundle] pathForResource:@"callAd-03" ofType:@"jpg"];
UIImage *thumbnail = [UIImage imageWithContentsOfFile:path];

注意一个细节:
你需要使用背景颜色与父视图的背景颜色一致。因为此时我们没有设置 masksToBounds,因此超出圆角的部分依然会被显示。因此,你不应该再使用背景颜色,可以在绘制圆角矩形时设置填充颜色来达到类似效果。

在为 UIImageView 添加圆角时,请确保 image 属性不是 nil,否则这个设置将会无效。

关于imageView:
UIViewContentModeScaleToFill :缩放图片,使图片充满容器,属性会导致图片变形。
UIViewContentModeScaleAspectFit:会保证图片比例不变,而且全部显示在ImageView中,这意味着ImageView会有部分空白,不会填充整个区域。
UIViewContentModeScaleAspectFill:也会证图片比例不变,但是是填充整个ImageView的,可能只有部分图片显示出来。
Top,Left,Right等等就是将突破放在View中的位置进行调整。
内容模式有利于重复使用view的内容,如果你想自定义视图并在缩放和计算操作期间重绘它们,可以使用UIViewContentModeRedraw值,设置该值将使系统调用drawRect:方法来响应视图的几何结构的改变,一般情况下,应该尽量避免使用该值。

关于imageView设置圆角的性能问题_第1张图片
屏幕快照 2017-03-23 下午3.14.05.png

你可能感兴趣的:(关于imageView设置圆角的性能问题)