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