使用Core Graphics,传统上这种方法是绘制上下文,然后绘制到屏幕。但是对于动态(用户改变颜色和位置的值)渐变而言,即使在iPad Air 2上,这在任何合理尺寸下也都非常慢。
有没有办法考虑使用Core Animation制作圆锥形(nee Angular)渐变的数学并避免上下文性能问题,以便快速动态调整渐变?
答案 0 :(得分:1)
我最近写了一个用于在Swift中绘制动态圆锥渐变的库:AEConicalGradient
我为了获得更好的性能而使用的方法是将不同角度和颜色的线绘制到圆的中心,而不是逐个像素地绘制内容(更少的迭代)。
还有助于启用drawsAsynchronously
的{{1}}属性。
在提供的示例中,您可以在更改设备方向时看到渐变颜色的动态更新,尽管在较大的设备上它仍然有点迟钝。
如果有人知道如何进一步改善表现,请在此讨论。