J'ai un uibeziercurve complexe que j'ai besoin de dessiner une fois avec des paramètres de ligne particuliers, puis de la tirer à nouveau comme une superposition avec d'autres paramètres de ligne, mais aussi j'ai besoin de la dernière partie de la courbe pour être légèrement plus courte que dans la précédente. .
Pour ce faire, je veux créer la courbe par Le problème est qu'il ne fonctionne pas comme je m'y attendais.
Je crée une copie de la courbe par: p> et le dessin que je fais dans l'originalCurve après cela, est appliqué également à la copie, donc je ne peux donc pas faire indépendant Dessinez pour l'une de ces courbes. P> Quelle est la raison de cette connexion entre original et copie et comment puis-je me débarrasser de cela? P> Editer 1:
Une solution que j'ai trouvée est de créer la copie de la manière suivante: p> puisque cela fonctionne correctement, le problème est peut-être dans l'immuabilité de la copie que je reçois p> addlinetopoint: code>,
MOVETOPoint: code> jusqu'à la dernière pièce, puis effectuez une copie de cette courbe et ajoutez la finale. segments de la ligne différemment dans les courbes originales et copiées. Et puis je caresse la courbe d'origine et le copié. P>
3 Réponses :
Créer un nouveau chemin identique en utilisant le CGPATH.
path2 = [UIBezierPath bezierPathWithCGPath:path1.CGPath];
S'il vous plaît, regardez mon édition de la question. Il me semble que je ne pourrai pas changer l'objet de chemin immuable, alors j'ai probablement besoin du mutable.
Vous ne pouvez pas changer le CGPATH, mais l'objet UIBZierPath réalisé avec le CGPATH est mutable.
En plus de @jrturton Réponse: -
Alternativement strong> Nous pouvons utiliser: - p> Référence p> p>
Mettez à jour pour SWIFT 3 Laissez cibledarc = arc.copy (CaysantWithWithWidth: 5.0, Linecap: .Mais, Linejoin: .miter, MIBRIMIT: 10)
copie () code> fonctionne bien pour moi comme swift 4.
originalPath code> n'est pas modifié. P > p>
Avez-vous alloc code> /
init code> Votre copieCurve?
Non, ce qui est écrit dans ma question ...