У меня есть сложная UIBezierCurve, которую мне нужно нарисовать один раз с некоторыми конкретными параметрами линии, а затем снова нарисовать ее как наложение с другими параметрами линии, но также мне нужно, чтобы последняя часть кривой была немного короче, чем в предыдущей.
Для этого я хочу создать кривую по addLineToPoint:
, moveToPoint:
до последней части, затем сделать копию этой кривой и добавить конечные сегменты линии по-разному в исходной и скопированной кривых. А потом я обводил оригинальную кривую, а скопированную.
Проблема в том, что это не работает, как я ожидал. Я создаю копию кривой по:
UIBezierPath* copyCurve = [originalCurve copy];
И рисунок, который я после этого делаю в originalCurve, применяется и к copyCurve, так что я не могу сделать независимый рисунок ни для одной из этих кривых.
В чем причина такой связи между оригиналом и копией и как от нее избавиться?
РЕДАКТИРОВАТЬ 1 :Решение, которое я нашел, состоит в том, чтобы создать копию следующим образом:
UIBezierPath* copyCurve=[UIBezierPath bezierPathWithCGPath:CGPathCreateMutableCopy(originalCurve.CGPath)];
Поскольку это работает правильно, возможно, проблема в неизменности копии, которую я получаю с помощью
[originalCurve copy]