iOS 专题

视图调试工具的简单使用介绍

2018-11-06  本文已影响25人  一双鱼jn

XCode中提供了工具来定位问题点,在XCode9.3之前,在Instrements中的Core Animation,在9.3版本之后,这些工具集成到了XCode中

在XCode的Debug -> View Debugging 选项下是视图问题调试相关的工具。

  1. Take Screenshot of xx iPhone - 截图
  2. Capture View Hierachy - 查看视图层级关系
  3. Show View Frames
  4. Show Alignment Rectangles
  5. Show View Drawing
  6. Show Responsive Scrolling Status
  7. Rendering - 渲染相关的问题查看工具
    1. Color Blended Layers - 图层混合检查

      当勾选该选项之后,发生图层混合的地方会用红色进行显示。

      什么是图层混合:当一块区域有多个视图时,这里的颜色显示是由多个Layer共同决定的,GPU会计算混合颜色的值,然后显示在屏幕上。这个计算过程是GPU执行的。

      如何解决该问题:所以对于只需要显示最上面的layer的,将最上面的layer设置为不透明,这样GPU就会忽略它下面的其他Layer。在代码中从下面三个角度去处理。

      1. 首先需要设置UIViewopaque的属性为true

      2. 当视图为UIImageView时,不仅该控件要设置为不透明的。并且该控件所显示的图片也不能包含有alpha通道。

      3. 给视图设置backgroundColor,当视图没有背景色的时候,仍然看做是透明的。

    2. Color Hits Green and Misses Red - 命中缓存的layer位图检查

      如果当前位置显示的内容是从缓存中获取的,用绿色进行标记

      视图的显示最终是将Layer绘制成位图,然后再来进行显示。这里用于检查这个位图是否是从缓存中取出来的。

    3. Color Copied Images - 检查是否对图片进行格式转换操作

      如果产生了格式转换,会用蓝色显示。

      GPU只解析32位的颜色格式,如果一张图片的颜色格式不是32位的,CPU会先将它的格式转换成32位的,然后再交给GPU去显示。

      解决方案:重新使用32位的图片,或者开启一条子线程去执行这个操作。

    4. Color Layer Formats

    5. Color Immediately

    6. Color Misaligned Images - 图片尺寸缩放检查

      如果系统对图片进行缩放处理,就会用黄色进行标记。

      当图片的尺寸和UIImageView的尺寸不一致的时候,图片就会进行缩放处理。图片的缩放处理也是需要占用时间的。

    7. Color Offscreen-Rendered Yellow - 离屏渲染检查

      发生了离屏渲染的地方会用黄色进行标记。

      离屏渲染是很耗时的操作。

      iOS9之后,设置圆角并且进行裁剪也不会产生离屏渲染了。

      下面这些设置会产生离屏渲染。

      • 阴影

      • 遮罩

    8. Color Compositing Fast-Path Blue

    9. Flash Updateed Regions

  8. Appearance

参考资料

https://bestswifter.com/uikitxing-neng-diao-you-shi-zhan-jiang-jie/

上一篇下一篇

猜你喜欢

热点阅读