前提・実現したいこと
横ScrollViewの中に複数のTableViewを持つような画面を作成したいです。
ScrollViewに表示したいTableViewは、ScrollViewとは別のViewController内のViewの配下に
作成済の状態です。
ScrollViewに、このViewController内のView内にある、TableViewを複数表示させたいです。
「ScrollViewの中に複数TableViewを持つような画面を作成したい」の実現方法は色々あると思うのですが、
当初、ViewControllerごとにTableView間をセグエで画面遷移する方針で作成していたのですが、
方針を変え、ScrollViewでTableViewを1画面で表示するよう方針を切り替えました。
そのため当初の方針で作成していた、ViewControllerにいるTableViewを、
ScrollViewにViewごと表示出来ないかと考えています。
(出来ない場合は、ScrollView内に複数Viewを作成して、Viewの配下にTableViewを配置しようと考えています)
発生している問題・エラーメッセージ
上記の実現を下記の手順で実施しようと思い、実装してみましたが、
ビルドすると、TableVIewだけが表示され、TableView内のTableViewCellが表示されません。
(1)ストーリーボード上で、TableViewを作成しているViewControllerに、identifierを設定
(2)ストーリーボードのViewControllerのインスタンス化
(3)インスタンス化したViewController内のViewを、ScrollViewに、addSubviewして表示
該当のソースコード
swift
1 let storyboard = UIStoryboard(name: "Main", bundle: nil) 2 let mainVC1 = storyboard.instantiateViewController(identifier: "Main1") as! CabinViewController 3 let mainVC2 = storyboard.instantiateViewController(identifier: "Main2") as! TestViewController 4 let mainVC3 = storyboard.instantiateViewController(identifier: "Main3") as! SeasoningViewController 5 6 let menu1 = mainVC1.view 7 let menu2 = mainVC2.view 8 let menu3 = mainVC3.view 9 10 self.scrollView.addSubview(menu1!) 11 self.scrollView.addSubview(menu2!) 12 self.scrollView.addSubview(menu3!)
教えていただきたいこと
①VIewを取得して表示した場合、取れるものと取れないものがある理由
(上記の方法だと、Viewの直下のTableViewまでは取れるが、TableViewの直下(孫)のTableViewCellまでは取れない?)
②(オプション)一般的なScrollViewの実装方法
ストーリーボード上でScrollView内の複数のViewを編集しようとすると、
Viewが増えるだけストーリーボード上の作業領域が狭くなるので、
細かなレイアウト調整が難しいと感じました。
一般的には、ScrollViewはコードで実装するのがよいのでしょうか?
補足情報(FW/ツールのバージョンなど)
Swift5
諸々素人質問で申し訳ないのですが、よろしくお願いします。
あなたの回答
tips
プレビュー