我有一个复杂的 UIBezierCurve ,我需要使用一些特定的线参数绘制一次,然后将其再次绘制为与其他线参数的叠加,但我还需要曲线的最后一部分比前一个略短。
为此,我想创建曲线addLineToPoint:
,moveToPoint:
直到最后一部分,然后复制该曲线并在原始曲线和复制曲线中以不同方式添加线的最终段。然后我抚摸原始曲线和复制的曲线。
问题是它不像我预期的那样工作。我通过以下方式创建曲线的副本:
UIBezierPath* copyCurve = [originalCurve copy];
之后我在 originalCurve 中所做的绘图也应用于 copyCurve,因此我无法为任何这些曲线进行独立绘图。
原件和副本之间存在这种联系的原因是什么,我该如何摆脱它?
编辑1:我发现的一个解决方案是通过以下方式创建副本:
UIBezierPath* copyCurve=[UIBezierPath bezierPathWithCGPath:CGPathCreateMutableCopy(originalCurve.CGPath)];
由于这工作正常,也许问题在于我得到的副本的不变性
[originalCurve copy]