Tengo una UIBezierCurve compleja que necesito dibujar una vez con algunos parámetros de línea particulares, y luego dibujarla de nuevo como superposición con otros parámetros de línea, pero también necesito que la última parte de la curva sea ligeramente más corta que en la anterior.¿Quieres hacer una copia independiente de UIBezierPath?
Para hacer esto, quiero crear la curva por addLineToPoint:
, moveToPoint:
hasta la última parte, luego hacer una copia de esta curva y agregar los segmentos finales de la línea de forma diferente en las curvas originales y copiadas. Y luego acaricio la curva original, y la copiada.
El problema es que no funciona como esperaba. puedo crear una copia de la curva por:
UIBezierPath* copyCurve = [originalCurve copy];
Y el dibujo que hago en el originalCurve después de eso, se aplica también a la copyCurve, por lo que no puede hacer el dibujo independiente de cualquiera de estas curvas.
¿Cuál es el motivo de esta conexión entre el original y la copia y cómo puedo deshacerme de él?
EDIT 1: Una solución que he encontrado es la creación de la copia de la siguiente manera:
UIBezierPath* copyCurve=[UIBezierPath bezierPathWithCGPath:CGPathCreateMutableCopy(originalCurve.CGPath)];
Dado que esto funciona correctamente, tal vez el problema está en la inmutabilidad de la copia de recibo con
[originalCurve copy]
¿Te ha alloc' '/' init '¿tu copia Curva? – Dustin
No, solo lo que está escrito en mi pregunta ... – BartoNaz