美文网首页iOS Developer
ios 圆角 cornerRadius 对性能的影响究竟多大?

ios 圆角 cornerRadius 对性能的影响究竟多大?

作者: 荔枝lizhi_iOS程序猿 | 来源:发表于2017-09-14 16:28 被阅读558次

    ios 圆角 cornerRadius 对性能的影响究竟多大? 你测试过吗?

    网上对”圆角设置“ 有很多说法,没有统一的说法,还有面试的时候被问到,所以今天打算 亲自试验下

    项目

    步骤,新建一个项目,新建2个ViewController ①一个正常显示无圆角,②一个圆角显示 ,然后在对比 frame per second 。
    我项目里设置的 row 行数 是 10000 行。每行 5 张图片UIButton

    项目环境: Xcode8.3.3 swift3 真机iPhone7

    项目截图

    首页 正常无圆角 圆角

    Instrument 测试性能

    在Instrument 里选择 Core Animation.

    image.png

    选择Debug Options - Color offscreen- Rendered Yellow


    image.png

    运行........

    A. 用iPhone7 测试

    1.正常 无圆角 Frames Per Second 大概是50多(iPhone7)。下方截图 ↓
    正常无圆角 效果图 正常 无圆角 Frames Per Second 大概是50多(iPhone7)
    2.圆角 Frames Per Second 大概是50多(iPhone7)。和不设置圆角 差不多。

    代码设置

    self.btn1.layer.cornerRadius = 5
            self.btn2.layer.cornerRadius = 5
            self.btn3.layer.cornerRadius = 5
            self.btn4.layer.cornerRadius = 5
            self.btn5.layer.cornerRadius = 5
            
            self.btn1.layer.masksToBounds = true
            self.btn2.layer.masksToBounds = true
            self.btn3.layer.masksToBounds = true
            self.btn4.layer.masksToBounds = true
            self.btn5.layer.masksToBounds = true
            
            self.btn1.clipsToBounds = true;
            self.btn2.clipsToBounds = true;
            self.btn3.clipsToBounds = true;
            self.btn4.clipsToBounds = true;
            self.btn5.clipsToBounds = true;
    

    下方截图 ↓


    圆角 效果图
    圆角 Frames Per Second 大概是50多(iPhone7)。和不设置圆角 差不多

    小结:用 iPhone7 ,设置 cornerRadius,masksToBounds,clipsToBounds 属性,实现圆角,frames per second 值差不多。说明 在iPhone7 里,圆角对 frames per second 影响不大。


    B.用iPhone5 测试。

    步骤同上。

    1.无圆角正常情况下,Frames Per Second 大概50左右(iPhone5)。截图如下
    无圆角正常情况,Frames Per Second 50左右 (iPhone5)
    2. 圆角 ,Frames Per Second 大概20. (iPhone5)
    圆角 ,Frames Per Second 大概20. (iPhone5)

    小结:用 iPhone5 ,设置 cornerRadius,masksToBounds,clipsToBounds 属性,实现圆角,frames per second 值相差很多 一个 50左右,一个20左右。说明 在iPhone5 里,圆角对 frames per second 影响很大。

    测试代码地址:https://github.com/lizhi0123/CornerRadiusTest

    总结:

    用 iPhone7 ,设置 cornerRadius,masksToBounds,clipsToBounds 属性,实现圆角,frames per second 值差不多。说明 在iPhone7 里,圆角对 frames per second 影响不大。

    用 iPhone5 ,设置 cornerRadius,masksToBounds,clipsToBounds 属性,实现圆角,frames per second 值相差很多 一个 50左右,一个20左右。说明 在iPhone5 里,圆角对 frames per second 影响很大。

    可以推断:不同的性能的手机,圆角设置 影响不同。

    本人知识有限,请大家纠正。大家是什么看法呢?

    相关文章

      网友评论

        本文标题:ios 圆角 cornerRadius 对性能的影响究竟多大?

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