Ist es möglich, einen bereits gezeichneten CGPath / UIBezierPath in einer Ansicht neu zu positionieren? Ich möchte die Position eines Pfades verschieben oder ändern und dann vielleicht die draininRect-Methode aufrufen, um die Zeichnung einfach wieder anzuzeigen.
Aus Ihrer Frage klingt es so, als würden Sie den Pfad mit Core Graphics in drawRect:
zeichnen (im Vergleich zur Verwendung von CAShapeLayer
), also erkläre ich zuerst die Version.
Sie können einen neuen Pfad erstellen, indem Sie einen anderen Pfad transformieren. Eine Translationstransformation bewegt das transformierte Objekt um eine bestimmte Distanz in x und y. Mit einer Übersetzungstransformation können Sie also Ihren bestehenden Pfad um eine bestimmte Anzahl von Punkten in x und y verschieben.
%Vor% Dann könnten Sie movedPath
verwenden, um genau so zu zeichnen, wie Sie es bereits tun.
Sie können auch den gleichen Pfad ändern
%Vor%und einfach neu zeichnen.
Wenn Sie eine Formebene verwenden, ist das Verschieben noch einfacher. Dann müssen Sie nur die Position des Layers mit der Eigenschaft position
ändern.
Wenn Sie eine Formebene verwenden möchten, können Sie einfach einen neuen CAShapeLayer erstellen und dessen Pfad als Ihren CGPath festlegen. Dazu benötigen Sie QuartzCore.framework, da CAShapeLayer Teil von Core Animation ist.
%Vor%Um die Form zu verschieben, ändern Sie einfach ihre Position.
%Vor%Tags und Links ios uibezierpath cgpath