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 影响很大。
可以推断:不同的性能的手机,圆角设置 影响不同。
本人知识有限,请大家纠正。大家是什么看法呢?
网友评论