ScrollViewとStackViewを組み合わせる
akaimoです。
そろそろiOS8のサポートが終わってきたと思うので、TableViewの変わりにStackViewを使う方法を書きます。
使いにくいScrollView
スクロールが必要な複雑な画面の場合、同じ要素が1つも存在しないのにTableViewを使うことがありました。
ScrollViewではなく、TableViewを使う理由はいくつかありますが、
一番大きな理由はScrollViewを使うためのハマりポイントがたくさんあったからだと思います。
そんなScrollViewですが、StackViewと組み合わせて使うことで大幅に使いやすくなります。
ScrollViewの設定
storyboardとxibを使用して実装します。
storyboard
シンプルにいくために、UIViewControllerを継承したcontrollerを用意します。
このcontrollerをstoryboardで設定していきます。
- このcontrollerにScrollViewを設置し、alignを0で四カ所に制約を付けます。
- ScrollViewの上にStackViewを設置し、こちらもalignを0で四カ所に制約を付けます。
- ScrollViewとStackViewを選択し、Equal Widthの制約を付けます。
これで基本的な設定は完了です。
StackView
StackViewの設定をします。
- AxisをVertical
- AlignmentをFil
- DistributionをEqual Centering
- Spacingを0
view
複数の要素から構成されるので、カスタムviewを使うことをオススメします。
xibを使用してviewを構成します。
viewはいつも通りに作成します。注意するところとしては、このview全体のサイズが決まるように制約を付けることです。
これを守ればあとはStackViewがそのサイズを確保してくれるので、TableViewのように様々なviewを組み合わせてScrollViewを使用することができると思います。