美文网首页
探究头像圆角属性性能相关的问题

探究头像圆角属性性能相关的问题

作者: 吖几角 | 来源:发表于2016-11-06 13:24 被阅读26次

    首先先添加一张图片,代码如下

    Snip20161113_1.png

    我们通过调试可以看出,混合模式是没有问题,颜色是绿的,也就说是没有透明的控件。

    Snip20161113_2.png

    然后我们设置圆角属性,观察下出现的问题,代码如下

     //设置圆角属性
        iv.layer.cornerRadius = iv.bounds.size.width * 0.5;
        iv.layer.masksToBounds = YES;
    
    Snip20161113_3.png

    小猫变红了,说明是做过透明处理的,性能就会降低,所以说使用了如上代码会影响性能。今天探究的就是如何用绘图解决这个问题。我们可以去新建一个分类方法,方便以后的使用。

    代码见下

    Snip20161113_4.png Snip20161113_5.png

    后续的需要处理裁切的黑色边框。

     ///设置填充的颜色
        
        [[UIColor whiteColor] setFill];
        
        UIRectFill(rect);
    

    最后的结果如下

    Snip20161113_6.png

    另外还有比较重要的一点点绘制图像的比较耗时,我们可以使用GCD异步去绘制图像,通过block回调的方法在返回图像,所以之前的代码要稍微坐下修改

    - (void)JY_cornerRadiusImageWithSize:(CGSize)size completion:(void (^)(UIImage *img))completion{
    

    将block当成参数来传递。

    控制里调用

    Snip20161113_7.png

    代码详情见地址。
    https://github.com/jingyu982887078/-Demo
    补充一张图片:

    Snip20161113_8.png

    相关文章

      网友评论

          本文标题:探究头像圆角属性性能相关的问题

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