使用阴影时提高性能的一种简单技巧

在开发过程中,我最近的iOS应用“为您放松声音”,我不得不面对一些问题和挑战。 其中之一是在滚动过程中滞后的集合视图。 刚开始时,我确定这只是模拟器而已,我对此并不太在意,但是随后我为iPhone进行构建,并且看到了与模拟器相同的滞后集合视图。 我深入研究代码,开始检查所有内容,一段时间后,很明显,集合视图性能问题是由两件事引起的:阴影和圆角。 事实证明,我一直用于阴影处理的代码并不是非常有效。

这是我以前使用的代码。

上面的代码将阴影添加到集合视图中的单元格中。 每次移动单元格时,都会重新绘制以这种方式创建的阴影。 因此,当我滚动集合视图时,所有单元格都被重新绘制了阴影。 这足以破坏iPhone 6s +上的流畅滚动。 幸运的是,它非常容易修复。

这是我现在使用的代码。

这两个简单的代码行使滚动收集视图超级顺畅。 它们允许绘图系统将阴影缓存为位图,然后重新使用它,直到需要重新绘制为止。 对于我的收藏视图单元格以及整个视图中几乎所有其他阴影,这是一个完美的解决方案。
因此,如果您的收藏视图(或其他任何视图)使用了大量阴影,并且在滚动过程中感觉放慢了速度,那么这也可能是您的解决方案!
这是我想与您分享的提高性能的第一(最简单)技术,第二将很快发布!

谢谢您的阅读,我希望您学到了一些有用的东西🙂