0

CAShapeLayerユーザーが画面上で指をなぞると更新されるパスを表示するために を使用しています。このパスを、パスを囲む長方形に変換したいと思います。長方形をうまく計算できます。トリッキーな部分は、変換をアニメーション化することです。

pathドキュメントでは、プロパティのアニメーション化について次のように述べていますCAShapeLayer

2 つのパスのコントロール ポイントまたはセグメントの数が異なる場合、結果は未定義です。

では、長方形にコントロール ポイントを追加するにはどうすればよいCGPathでしょうか。または、このアニメーションを実現するためのより良い方法はありますか? ありがとう。=)

4

1 に答える 1

1

長方形の形で一連の線を手動で作成する必要があると思います。パス内の要素を反復処理し、そのポイントを変換する境界四角形の場所を計算し、そのセグメントを新しい四角形パスに追加します。制御点の数が一致するように、同じ種類の要素 (たまたま直線を形成する 3 次または 2 次ベジエ曲線など) を使用する必要がある場合があります。

アニメーションが完了したら、必要に応じてパスを純粋な長方形にリセットできます。

于 2013-03-24T12:13:00.983 に答える