我有自定义绘图代码,它使用贝塞尔路径、渐变和笔触来执行我的绘图。我想通过循环 drawRect 并更改贝塞尔路径上的属性值来运行自定义动画。
我已经研究过使用 CAShapeLayer ( drawrect中的 UIView 动画),但这似乎对我来说并没有减少它。我的绘图代码非常复杂,有几百行,所有的绘图都是通过贝塞尔路径和渐变完成的。将绘图更改为 CAShapeLayer,然后向其添加颜色和渐变将非常耗时!
我知道 Apple 不建议显式调用 drawRect 而是使用 setNeedsDisplay 调用 draw rect (如何正确使用 DrawRect)。但是这样做的问题是我每次都会在动画中体验到细微的差异(尽管非常微小)。这可能与 setNeedsDisplay 安排在运行循环上调用 drawRect 但本身不直接调用它有关。
我想知道我可以使用哪些策略来循环 drawRect 并每次实现同步的完美定时动画。是否有可能做到这一点?