这几天看简书上的文章,看到几篇关于控件设置圆角的,大多数都说是layer.masksToBounds=YES会引起FPS的降低,但是经过我的测试,并不是这句话引起的,而是这句话再加上设置边框,即layer.borderWidth=1.0,只要borderWidth不等于0,再加上layer.masksToBounds=YES,FPS一定降低。下面我就把我的测试过程说一下,有不对的地方希望大家指正。
先来看一下,我的界面
这是我用来测试的界面,下面我就一步步的进行操作,然后用Instruments进行测试,看一下FPS的变化。
首先,我们先什么也不设置,看一下这种情况下,FPS值的变化
看一下此时的FPS值的变化:
第二步,我们先设置圆角(打开页面左下角的开关),测试界面如下
此时的FPS变化如下
从上面的FPS图可以看出,在只设置圆角的情况下,跟什么也不设置相比,FPS的值并没有发生什么大的变化。
第三步,我们只设置边框,不设置layer.masksToBounds=YES这句话,我们再来看看情况如何,(这种情况下是关闭左下角开关,右下角选中显示边框选项)
还是看一下此时的FPS变化如何
从上面的FPS变化图我们也可以看出,在只设置边框时,FPS的变化也不是很大。
最后一步,我们同时设置圆角跟边框,看一下此时又是什么情况呢
此时FPS变化图如下:
哇奥,可怕的事情发生了,FPS降到了25左右。
最后贴一下我的Demo,想研究一下的同学可以看一下。
这就是我经过测试后得出的结论,如果有不对的地方希望指正,谢谢!