私は次のことをしようとしています:
画像を表示するビューがあります。ズームイン/ズームアウトを行うためにピンチジェスチャー認識機能を実装しました。ユーザーが同じ速度で同じ位置にズームした画像とまったく同じように、アニメーションを実行して画像を表示するにはどうすればよいですか。たとえば、右上隅をズームインすると、画像は右上隅をズームして同じ速度で再生する必要があります。
前もって感謝します
私は次のことをしようとしています:
画像を表示するビューがあります。ズームイン/ズームアウトを行うためにピンチジェスチャー認識機能を実装しました。ユーザーが同じ速度で同じ位置にズームした画像とまったく同じように、アニメーションを実行して画像を表示するにはどうすればよいですか。たとえば、右上隅をズームインすると、画像は右上隅をズームして同じ速度で再生する必要があります。
前もって感謝します
記録システムを作成する必要があります。私の頭の上から、次のようなことができます:
ユーザーの描画シーケンスを開始したときの現在のタイムスタンプを記録します。
NSTimeInterval startTime = [NSDate intervalSinceReferenceDate];
ユーザーがピンチやズームを行ったときに、すべての変更について、開始時刻からの経過時間と行った変更を記録します。各レコードに経過時間フィールドと新しいズーム スケールがある変更レコードの配列を作成することをお勧めします。
ユーザーの変更をさまざまなサイズの個別のレンダリングとして描画する場合は、それぞれの経過時間と新しいサイズを記録して再生するだけです。
サイズ間でアニメーション化する場合は、各アニメーションの時間間隔と時間オフセットを記録します。
次に再生するには、タイマー、performSelector:withObject:afterDelay: などを使用して、各レコードを実行し、同じ時間間隔で同じ変更を実行します。
私はまた、私のプロジェクトの 1 つについて、同じ種類の要件についていくつかの調査を行いました。
私が見つけた/行ったことは次のとおりです。画像ビューをスクロールビューに追加しました。次に、max-min zoomScale、frame、delegate、userInteractionEnabled、scrollEnabled などのすべての scrollview プロパティを設定しました。
したがって、ピンチレベルごとに管理する必要がなくなり、スクロールビュー自体がすべてのズームレベルとスクロール部分を管理します。
これがあなたを助けることを願っています。
コーディングをお楽しみください :)