检测离屏渲染

2019/8/15 posted in  iOS

instrumets 已经取消了debug options

可以在xcode的debug - view debugging 找到

“核心动画工具和模板已在工具中弃用。之前在”调试选项“下的功能已移至Xcode,位于”Debug> View Debugging“下。

BB55F33F-97CC-4C28-B3F1-22456A2A7BD8.png

开启后会把那些需要离屏渲染的图层高亮成黄色,这就意味着黄色图层可能存在性能问题。

正常:是这样的
正常渲染.png

有问题的图层:

调试.png
可以看见我设置了圆角的imageView有问题.

### 项目开发中怎么去处理?

抛出一个问题: 需求就是有很多圆角那我们项目中应该怎么去处理圆角呢?

  1. 使用YYWebImage去处理
  2. iOS中圆角图片的处理

相信看完两篇文章,多少都会能收获一点!

有些人说:

iOS 9.0 之后UIButton设置圆角会触发离屏渲染,而UIImageView里png图片设置圆角不会触发离屏渲染了,如果设置其他阴影效果之类的还是会触发离屏渲染的(这句话不知道谁说的.自己有没有去尝试呢???)

结论: 经过测试

70915C7C-7523-4008-9A88-B5682407926D.png

大家可以看到,
UIButton 的 masksToBounds = YES下发生离屏渲染与 背景图存不存在有关系, 如果没有给按钮设置 btn.image = [UIImage imageName:@"xxxxx"]; 是不会产生离屏渲染的 .

关于 UIImageView,现在测试发现(现版本: iOS10),在性能的范围之内,给UIImageView设置圆角是不会触发离屏渲染的,但是同时给UIImageView设置背景色则肯定会触发.触发离屏渲染跟 png.jpg格式并无关联(可能采取的压缩格式不同,这里不做探讨,这里我给出结果是没有关系)