【Swift5】縦長のスクロール画面をscrollViewとstackViewを使って作ると便利だった。改訂版

【Swift4】縦長のスクロール画面をscrollViewとstackViewを使って作ると便利だった。 | iPhoneアプリ備忘録

上記ページのやり方でスクロールビューを作ってるとエラーが出た。
Xcode11でInterface Builderの仕様が変わったらしい。
参考サイト
Xcode11のIBに追加されたContentLayoutGuideとFrameLayoutGuideについて – Qiita

なので改訂版です。
旧ページの画像を使ったりするので整合性がなかったらご指摘ください。/(^o^)\

まず、Safe AreaにScroll Viewを配置します。
Add New Constraintsで上下左右全てのマージンを0とします。
スクリーンショット 2019-01-06 20.41.39

このようなエラーが出ますが続けます。
スクリーンショット 2020-04-03 12.29.31

次いで、そのScroll Viewの中にVertical Stack Viewを配置し、Add New Constraintsで上と左右のマージンを0とします。
スクリーンショット 2020-04-03 13.19.10

ここでXcode11から変更された「Content Layout Guide」を使用します。
現状ではScrollViewの幅と高さが決まっていないためエラーになっています。
なのでStack ViewからContent Layout Guideへ右ドラックで接続しEqual Widthsを選択します。スクリーンショット 2020-04-03 12.30.10

スクリーンショット 2020-04-03 12.31.06

同様にEqual hightsも接続します。
スクリーンショット 2020-04-03 12.31.21

幅は画面幅で設定されるのですが高さが決まらないためエラーが出てますが、Stack Viewに子ビューを入れて高さを決定するとエラーが無くなります。
スクリーンショット 2020-04-03 13.51.43

スクリーンショット 2020-04-03 14.01.41

縦長な画面でテストします。
操作するViewを選んで、simulated sizeを「freeform」にして、heightを設定します。
とりあえず1200にしてみました。
スクリーンショット 2019-01-06 20.51.30

StackViewに高さが200の子Viewを6個入れて分かりやすように色を付けてみました。
スクリーンショット 2019-01-06 21.04.34

これでアプリを起動すると綺麗にスクロールしました。\(^o^)/
zuhqs-9xva4

これだけのことがコードを一行も書かずにできるってすごいなーと思います。\(^o^)/

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です