我制作了一个使用 UIBezierPath 绘制多条曲线的应用程序。现在我正在尝试在其中实现修改功能。要修改特定曲线,我可以做的一件事是再次绘制所有曲线;我还没有实现这个。但是我认为当曲线数量增加时,这种算法效率不会很高,因为我必须将所有点存储在数组中,并且每次进行修改时都必须运行 for 循环来绘制每条曲线。
我正在寻找更有效的算法。如果有人可以提供示例代码,那将会很有帮助。
您可以将单个曲线表示为s 并通过为每条曲线创建一个并将形状图层的属性分配给贝塞尔路径的相应属性来UIBezierPath
分别绘制它们。要更新单个曲线,您只需操作一个贝塞尔路径和相应的形状图层属性。CAShapeLayer
path
CGPath
path
重新绘制曲线,直到出现使用 Instruments 测量的性能问题。如果再次发生这种情况,请使用 Instruments 来确定优化的最佳方法。
很容易花时间在从不需要的优化上。最初,最好将时间和思考用于创建“干净”的代码。