2018年3月21日水曜日

ScrollViewのContentSize

引っかかって悩んだところ。

ContentSize

上のように、縦横240pixelのScrollViewの上に、300*200のViewを置き、その上にいくつかLabelを置いた。
そのまま実行させると横だけにスクロールして、隠れている横60pixelも見られる。(ScrollViewに直接置いた「WH240のScrollView」というLabelはスクロールしない)

ContentSizeの値を変えてみる

ContentSizeはスクロールさせる中身の大きさということなので、これをviewDidLoad()内で以下のようにそれぞれ変更した場合はどうか?
myScrollView.contentSize = CGSize(width: 250, height: 200)
myScrollView.contentSize = CGSize(width: 500, height: 200)
なぜか何の変化もなく、ちゃんと隠れた横60pixelが表示されたところでスクロールは止まる。
予想では途中までしかスクロールしなかったり、View全体が表示されてもさらにスクロールし続けると思ってたのだが、そうならない。
viewDidAppear()内で設定したところ、期待どおりの動作になった。
これで実際に置かれた中身のコンテンツの大きさに関わらず、スクロール量を調整できるわけだ。

実はコンテンツの一部だけをスクロールさせたかったのに、rootのViewの大きさ分(=画面全体)がスクロールしてしまい、困ってたのだ。

0 件のコメント:

コメントを投稿