cornerRadius 和离屏渲染如何影响 iOS 9 中的性能

How does cornerRadius and offscreen rendering affect performance in iOS 9

设置cornerRadius和masksToBounds会导致离屏渲染,影响滚动时的性能table。虽然这在之前已经提到了很多,但是有人在 iOS 9 中做过这方面的实验吗?

这是我的demo,看来设置cornerRadius对滚动性能没有任何影响。在我的 iPhone 6 上,平均 fps 仍然是 57 或 58。

iOS 9 是优化还是我做错了什么?

对了,我注意到当UIImageView是正方形(width = height)时,设置一些UIImageView的conner不会导致离屏渲染。这是怎么发生的?

您误解了关于 cornerRadiusmasksToBounds 的警告的含义。您只是在单元格内设置某些图像视图的 cornerRadiusmasksToBounds。当滚动 table 视图时,那些图像视图不是动画:动画的是 cells。单元内部已经完全合成;它不必在动画的每一帧上都重新合成。

如果您设置了每个 单元格 cornerRadiusmasksToBounds,您可能会看到一些更严重的滚动效果。

看来我没有向单元格中添加足够的图像。当呈现图像的数量达到30或更多时,对性能的影响就变得明显。平均 fps 下降到 33。