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

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

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,004评论 25 708
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,198评论 4 61
  • 什么TM的叫做“什么年龄该干什么事儿” (请脑补:一家长在跟ta二十多岁的孩子哔哔) 我跟你说:“什么年龄该干什么...
    淘也阅读 2,564评论 0 0
  • 懵懂的时候觉得,好多事情都可以原谅,往往只有经历了,才知道原来自己有底线,或者开始走了底线,我从来不知道我会那么恨...
    芃芃_70b8阅读 213评论 0 0
  • 【原料】 双钩藤30克,灵芝30克,仔乌鸡一只,猪骨汤300毫升,菜籽油60毫升,精盐、黄酒,食醋、酱油、鲜红椒、...
    健康食谱阅读 401评论 1 0