ios 圆角 cornerRadius 对性能的影响究竟多大? 你测试过吗?
网上对”圆角设置“ 有很多说法,没有统一的说法,还有面试的时候被问到,所以今天打算 亲自试验下
项目
步骤,新建一个项目,新建2个ViewController ①一个正常显示无圆角,②一个圆角显示 ,然后在对比 frame per second 。
我项目里设置的 row 行数 是 10000 行。每行 5 张图片UIButton
项目环境: Xcode8.3.3 swift3 真机iPhone7
项目截图
Instrument 测试性能
在Instrument 里选择 Core Animation.
选择Debug Options - Color offscreen- Rendered Yellow
运行........
A. 用iPhone7 测试
1.正常 无圆角 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;
下方截图 ↓
小结:用 iPhone7 ,设置 cornerRadius,masksToBounds,clipsToBounds 属性,实现圆角,frames per second 值差不多。说明 在iPhone7 里,圆角对 frames per second 影响不大。
B.用iPhone5 测试。
步骤同上。
1.无圆角正常情况下,Frames Per Second 大概50左右(iPhone5)。截图如下
2. 圆角 ,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 影响很大。
可以推断:不同的性能的手机,圆角设置 影响不同。
本人知识有限,请大家纠正。大家是什么看法呢?