質問: ### 作成中のアプリにscrollviewを追加したい 現在、Xcode ver11.3、swift5、storyboardを使ってiPhoneアプリを作成しています。 作っている途中で縦スクロールの画面を実装したくなったので色々と検索して真似している のですが、スクロールを実装することができていません。 そこで3つ質問があります。1つでもわかることがありましたら教えていただけると嬉しいです。 swiftは始めたばかりで見よう見まねなので、変な認識もあるかと思います。その点も 教えていただければと思います。 ### 1.storyboardにすでにラベル等を配置していても、scrollviewの追加は可能でしょうか? 調べたサイトは全て、アプリ作成の最初にscrollviewを配置していました。 私が作成しているアプリにそのままscrollviewを追加すると、scrollviewが最前面にきてしまいました。 ### 2.viewの上にscrollviewを重ねればよいのでしょうか? 新規プロジェクトを作成すると、初期storyboardではviewcontrollerの下階層にviewがいます。 このviewの下階層にscrollviewをおけばよいのでしょうか? また、ネットではそのscrollviewの上にviewを重ねているものもありますが、この重ねているviewは 何の役割があるのでしょうか? ### 3.Xcode ver11.3、swift5で参考になる記事がありますか? 色々と調べているのですが、情報が古い物が多く挙動が異なることがあります。 上記のバージョンでも参考にできるサイト等ご存知だったら教えていただきたいです。
回答: ### 1について 可能です。 後から追加されたViewは前面に表示されてしまいますが、 **Document Outline**でViewの順番を入れ替えれば前面に表示されているViewと背面に表示されているViewを入れ替えることができます。 | ScrollViewが背面 | ScrollViewが前面 | | --- | --- | | SBackground | SFront | ### 2について ViewController上のViewに追加すれば大丈夫です。 また、ScrollViewは子のViewの大きさをスクロール領域として決定します。 幅をScrollViewと同じにして、高さを大きい値(例えば1000px)で固定したViewをScrollViewの上において1000px分縦にスクロールできる画面を作るような例を見たことはないでしょうか? ScrollView単体ではスクロールできる領域は作れないので、あんな感じでViewを追加したりStackViewを追加してスクロール領域を決定した上で使用します。 ### 3について 以前似たような質問を回答させていただいたことがあるのでもしかしたら参考になるかもしれません。 参考 Xcode11でScrollViewに**Content Layout Guide**というものが追加されたので、 そこに注意すればある程度古い情報でも使えると思います。 Content Layout Guideについての参考