【发布时间】:2025-12-18 03:45:01
【问题描述】:
我有自定义绘图代码,它使用贝塞尔路径、渐变和笔触来执行我的绘图。我想通过循环 drawRect 并更改贝塞尔路径上的属性值来运行自定义动画。
我已经研究过使用 CAShapeLayer (UIView animation in drawrect),但这似乎对我来说并不合适。我的绘图代码非常复杂,有几百行,所有的绘图都是通过贝塞尔路径和渐变完成的。将绘图更改为 CAShapeLayer,然后为其添加颜色和渐变将非常耗时!
我知道 Apple 不建议显式调用 drawRect 而是使用 setNeedsDisplay 调用 draw rect (How to use DrawRect correctly)。但是这样做的问题是我每次都会在动画中体验到细微的差异(尽管非常微小)。这可能与 setNeedsDisplay 安排在运行循环上调用 drawRect 但本身不直接调用它有关。
我想知道我可以使用哪些策略来循环 drawRect 并实现每次同步的完美定时动画。可以这样做吗?
【问题讨论】:
标签: ios uikit core-graphics drawrect uibezierpath