私は、候補者が質問にどれだけうまく答えたかについての聴衆の意見を表すために、政治討論で時々表示される「ワーム」を複製しようとしています. これは基本的に、x 軸に沿ってアニメーション化して時間を表し、y 軸に沿って上下に動かして意見を表す線です。
このアニメーションを次の方法で実行できることがわかりました
- UIBezierPath を作成し、定義済みの座標セットでその moveToPoint/addLineToPoint メソッドを使用します。
- CAShapeLayer を作成し、そのパス プロパティを上記の UIBezierPath に設定します。
- CABasicAnimation を作成し、それを CAShapeLayer に追加します。
これで問題ありませんが、ユーザー入力 (ボタンをタップして線を上下に移動) によって線がリアルタイムで影響を受ける必要があります。ユーザーから入力を受け取って垂直方向にも移動しない限り、ラインは水平方向に移動する必要があります。
だから私の質問は、これについてどうすればいいですか?上記の箇条書きで説明した方法を何らかの変更を加えて使用できますか、それとも別の手段を使用する必要がありますか?
アドバイスありがとうございます!
[編集]
これは機能するかもしれませんが、少し非効率的であり、作成されたパスが非常に短いかどうか、つまり、開始点からの完全なパスではなく、パスの現在描画されている部分だけであるかどうかはわかりません。私が次のことをした場合:
- lastPointとcurrentPointの 2 つの変数を作成します。
- 次の処理を行う draw メソッドを繰り返し呼び出す
- [path moveToPoint: lastPoint];
- [パス addLineToPoint: currentPoint];
- lastPoint = currentPoint;
- currentPoint = [self calculateNewPointFromUserInput];
- 繰り返す;