Xcode 11でUIScrollViewのAutoLayoutの制約のかけ方が変わった

iOS

UIScrollViewはAutoLayoutのみでスクロールできるよう設定できますが、
Xcode 11でその方法が少し変わりました。

作りたいもの

画面幅と同じサイズのViewを2枚横に配置し、スクロールできるようなものを作ります。

scroll.gif

Xcode 10.3

xcode10.png

Xcode 11

xcode11.png

違い

Xcode 11では Content Layout GuideFrame Layout Guide が追加されています。

Xcode 10.3(今まで)ではScrollViewの直下にViewを配置、そのViewの子としてスクロールさせたいViewを配置し、制約をかけることでスクロールできるようになっていました。

Xcode 11ではScrollViewの直下にViewが Content Layout GuideFrame Layout Guide に置き換わったようです。
そのため、Xcode10.3(今まで)でScrollView直下のViewにかけていた制約を Content Layout GuideFrame Layout Guide にかけることで同じ機能を実現できます。

結局やることは変わりませんが、最初は戸惑うかもしれないので注意が必要かもしれないですね。

ちなみに

Xcode 11からストーリーボード上でスクロールのプレビューができるようになっています。

scroll-preview.gif

この記事を書いた人

村田真矢
村田真矢
2018年入社の新卒です。
iOSアプリの開発やCI環境の構築・管理をしています。

iOS