私はいくつかの特定の線パラメータで一度描く必要がある複雑なUIBezierCurveを持っていて、他の線パラメータとオーバーレイとして再び描画する必要がありますが、曲線の最後の部分は前の部分より少し短くする必要があります。UIBezierPathの独立したコピーを作成しますか?
これを行うには、最後の部分までaddLineToPoint:
とmoveToPoint:
でカーブを作成し、このカーブのコピーを作成して、元のカーブとコピーしたカーブで線の最終セグメントを別々に追加します。そして、元の曲線とコピーされた曲線を描きます。
問題は、期待通りに機能しないことです。 私はでカーブのコピーを作成します。
UIBezierPath* copyCurve = [originalCurve copy];
そして、私はその後originalCurveで行う描画、copyCurveにも適用されるので、私は、この曲線のいずれかの独立した描画を行うことはできません。
オリジナルとコピーのこの接続の理由は何ですか?どのようにして取り除くことができますか?
EDIT 1: 私が見つけた解決策は、次の方法でコピーを作成することです:
UIBezierPath* copyCurve=[UIBezierPath bezierPathWithCGPath:CGPathCreateMutableCopy(originalCurve.CGPath)];
これが正常に動作するので、多分問題は私が取得コピーの不変性であります
[originalCurve copy]
はあなた 'alloc' /'初期化を行いましたあなたのcopyCurve? – Dustin
いいえ、ちょうど私の質問に書かれているもの... – BartoNaz