zakiyamaaaaa / excellent-project

0 stars 0 forks source link

Add autolayout to scrollview #24

Closed jollyjoester closed 7 years ago

jollyjoester commented 7 years ago

これ難しいな・・・

まず基本として中身のサイズによってscrollviewのサイズを自動的に決めるにはscrollviewの中のviewが固定の高さをautolayoutで決められるように制約を設定すれば良い。

例えば下記のような階層にする

ScrollViewに上下左右マージン0を設定 ContentViewに上下左右マージン0を設定+ScrollViewとequal widthを設定 中身について上から下までマージを設定

で中身のサイズによってScroll領域が自動的に決まるようになる。

詳しくは下記を参考 http://whiskmobile.com/post/130915367616/uiscrollview-with-auto-layout

※ただし、罠があって今回中身にTextViewが入っていたのでAutoLayoutだけ制約を決めるのが非常に難しかった。なので今回TextViewをLabelに置き換えている。(TextViewもScrollViewの一種なので中身のテキストの分量よって高さを決めることができない。Labelは文字列の分量次第で固有の高さが自動的に決まる。Labelの代わりにTextViewを使いたいならheightに固定値を設定することで使える)

で、これでいけるはずだったんだけど動作確認してみるとまだうまくいってない(下の方まで完全にスクロールできない)。

試しにRecruiterPersonalViewControllerのis initial View Controllerにチェックを入れて動作確認するとこちらはうまくいく。なのでAutoLayoutの設定自体は問題なくてContainerViewの中にScrollViewを使うには何か設定が足りないのかもしれない。。。というとこまでわかった。

続きはまた