浅谈iOS中的视图优化
1.Color Blended Layers
Shows blended view layers. Multiple view layers that are drawn on top of each
other with blending enabled are highlighted in red. Reducing the amount of
red in your app when this option is selected can dramatically improve your
app’s performance. Blended view layers often cause slow table scrolling.
1.1简单来说,屏幕上的每个像素点的颜色是由当前像素点上的多层layer(如果存在)共同决定的,GPU会进行计算出混合颜色的RGB值,最终显示在屏幕上。而这需要让GPU计算,所以我们要尽量避免设置alpha,这样GPU会忽略下面所有的layer,节约计算量
####1.2 layer.opaque = YES 正确做法
2.Color Copied Images
2.1 苹果的GPU只解析32bit的颜色格式,记住是32bit ! 如果你放一张图片,而它的颜色格式却不是32bit,CPU会先进行颜色格式转换,再让GPU渲染。乖乖的CPU就默默做了这个多余的工作,异步转换颜色,也会导致性能损耗,比如电量增多,发热强变大等等等等.
3.Color Misaligned Images
3.1Misaligned Image表示要绘制的点无法直接映射到频幕上的像素点,此时系统需要对相邻的像素点做anti-aliasing反锯齿计算,增加了图形负担,通常这种问题出在对某些View的Frame重新计算和设置时产生的
3.2 不要出现image size与imageView size不同的情况,这样会触发反锯齿计算,增加性能损耗
3.3 实际开发中,本地的图片比较好把控,只需要写好对应的尺寸就好了,但是对于download下来的图片,可以在加载完后进行size处理,以满足imageView frame。特别是对于很多app,有大量的tableview,如果进行处理,则会大幅度提高流畅度
4.Color Offscreen-Rendered 离屏渲染
而避免的方式则是避免去做触发的动作: #### 1.重写drawRect方法 #### 2.masksToBounds #### 3.其他一些手动触发离屏渲染的动作