2011-02-03 5 views
4

UIScrollViewに1つの子ビューが含まれています。作成した直後にUIScrollViewcontentSizeを設定すると、すべてが正常に動作し、スクロールします。UIScrollView contentSizeを更新するとスクロールが発生する

難問は、UIScrollView内のビューが動的サイズであることです。幅は固定されていますが、スクロールビューを設定した時点での高さは不明です。

内側ビューの後に[scrollView setContentSize:CGRectMake(...)]を実行すると、スクロールビューが適切なサイズに更新され、スクロールが機能します。基本的なスクロールはうまく動作します。

しかし、大きな問題は、後でUIScrollViewがスクロールビューの最後に向かって(アニメーションで)スクロールすることを決めたときです。これは私が望むものではありません。見た目のスクロール位置を変更することなく、スクロールビュー内のコンテンツを大きくまたは小さくすることができます。

私には何が欠けていますか?

+0

私は確かにあなたが-setContentSize 'にCGRectを渡していない願っています:'。 –

+0

@ケビンはそれをキャッチするために感謝します。 CGSizeMakeでなければなりません(これは実際にコードに含まれています)。 – Kekoa

答えて

6

setContentSizeを呼び出すと、なぜ[scrollview setContentOffset:CGPointMake(0,0)];にもコールしないのですか?

+2

お返事ありがとうございます。あなたは私に、オフセットが最初に0,0でない理由を考えさせました。問題は、ウィンドウ自体よりも大きな高さにコンテンツオフセットを初期化していたため、コンテンツサイズが変更されたときに、スクロールビューが元の位置を保持したかった可能性があります。コンテンツサイズを初期化しないと動作が固定され、移動しません。 – Kekoa

0

UIScrollViewにスクロールのみを強制する。水平に、私はいつも使用して、0にcontentSizeのための非スクロール可能な値を設定します。

CGSizeMake(contentSize.width, 0). 
関連する問題