UIScrollView でズームを有効にする方法 質問する

UIScrollView でズームを有効にする方法 質問する

ズームを有効にするにはどうすればいいですかUIScrollView?

ベストアンサー1

答えはここ:

スクロール ビューは、コンテンツのズームとパンも処理します。ユーザーがピンチインまたはピンチアウト ジェスチャを行うと、スクロール ビューはコンテンツのオフセットとスケールを調整します。ジェスチャが終了すると、コンテンツ ビューを管理するオブジェクトは、必要に応じてコンテンツのサブビューを更新する必要があります (ジェスチャが終了しても指がまだ押されている可能性があることに注意してください)。ジェスチャが進行中の場合、スクロール ビューはサブビューに追跡呼び出しを送信しません。

UIScrollView クラスには、UIScrollViewDelegate プロトコルを採用する必要があるデリゲートを含めることができます。ズームとパンが機能するには、デリゲートが viewForZoomingInScrollView: と scrollViewDidEndZooming:withView:atScale: の両方を実装する必要があります。さらに、最大 (maximumZoomScale) と最小 (minimumZoomScale) のズーム スケールが異なる必要があります。

それで:

  1. インスタンスに実装されUIScrollViewDelegate、設定されているデリゲートが必要ですdelegateUIScrollView
  2. デリゲートでは、1つのメソッドを実装する必要がありますviewForZoomingInScrollView::(ズームしたいコンテンツビューを返す必要があります)。scrollViewDidEndZooming:withView:atScale:オプションで実装することもできます。
  3. インスタンスでは、と を異なる値にUIScrollView設定する必要があります(デフォルトでは 1.0 です)。minimumZoomScalemaximumZoomScale

注記:興味深いのは、もしあなたが壊すnilズーム。メソッドでreturn するだけで十分でしょうかviewForZooming...? ズームは解除されますが、一部のジェスチャがおかしくなります (2 本の指の場合)。したがって、ズームを解除するには、最小および最大のズーム スケールを 1.0 に設定する必要があります。

おすすめ記事