web-dev-qa-db-ja.com

UIScrollViewとsetContentOffset

私の質問はこの方法についてです:
(void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated

ドキュメントを読みましたが、この方法が何のためにあるのかわかりません。

あなたの答えをありがとう。

12
izan

ドキュメント で述べたように。

特定のオフセットまでスクロール

特定の左上の場所(contentOffsetプロパティ)へのスクロールは、2つの方法で実行できます。 setContentOffset:animated:メソッドは、指定されたコンテンツオフセットまでコンテンツをスクロールします。アニメーション化されたパラメータがYESの場合、スクロールは現在の位置から指定された位置まで一定の速度でアニメーション化されます。アニメーション化されたパラメータがNOの場合、スクロールは即座に行われ、アニメーション化は行われません。どちらの場合も、デリゲートはscrollViewDidScroll:メッセージを送信します。アニメーションが無効になっている場合、またはcontentOffsetプロパティを直接設定してコンテンツオフセットを設定した場合、デリゲートは単一のscrollViewDidScroll:メッセージを受信します。アニメーションが有効になっている場合、アニメーションの進行中に、デリゲートは一連のscrollViewDidScroll:メッセージを受信します。アニメーションが完了すると、デリゲートはscrollViewDidEndScrollingAnimation:メッセージを受信します。

つまり、簡単に言えば、スクロール位置の値、つまりスクロールする量を渡すことによってプログラムでUIScrollViewをスクロールする場合は、この方法を使用できます。

このメソッドは、デリゲートscrollViewDidScroll:、つまりUIScrollViewクラスのデリゲートメソッドも呼び出します。これにより、UIScrollViewのスクロール量を維持できます。

35
Janak Nirmal

UIScrollViewを使用すると、画面に表示できるコンテンツよりも大きいコンテンツを作成できます。下の画像では、内部に緑色の長方形がある大きな赤い長方形を見ることができます。

UIScrollViewのcontentAreaプロパティは、ビューの論理サイズ(赤い長方形)を定義します。スクロールビューの表示領域は、緑色の長方形で表されます。 contentOffsetは、表示領域の左上隅です。 contentOffsetを変更すると、表示領域が移動します。

(void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated

上記のメソッドは、contentOffset(緑色の長方形の左上隅)を指定された場所に移動し、表示領域(緑色の長方形)を移動します。

お役に立てれば。

enter image description here

47
Alex Stanciu