美文网首页
关于imageView设置圆角的性能问题

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

作者: 向晚forever | 来源:发表于2017-03-23 15:14 被阅读180次

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

    屏幕快照 2017-03-23 下午3.14.05.png

    相关文章

      网友评论

          本文标题:关于imageView设置圆角的性能问题

          本文链接:https://www.haomeiwen.com/subject/pcoznttx.html