プライベートがバタバタしていたので、アプリ開発もブログ更新もほぼホッポリ出していましたが、主は生きてます。
生存確認はこのくらいにして、本題です。
storyboard便利ですね。
画面間のつながりまで、一気にGUI上で設定できて、とっても楽チンです。
そして、ScrollView便利ですね。
複数毎のViewControllerを横に並べて、ページングスクロールさせたりすると、いろいろ出来て少し幸せになります。
しかし、1点だけ不満な点があります。
storyboardとScrollViewの親和性がイマイチなトコロです。
具体的にはcontentSizeをstoryboard上で設定できないトコロ。
その他もいろいろありますが、大元を辿るとすべてココに集約する気がします。
さてさて、storyboard上でcontentSizeを指定できないということは、scrollViewを抱えているviewController側にコーディングが必要になるということです。
contentSizeの指定+各ページの追加処理です。
contentSizeの指定方法は簡単ですね。
scrollView.contentSize = CGSizeMake(320*3, 460);
あとは、ページ毎のviewController.viewをscrollViewにaddSubViewして完了です。
と、ちょっと待ってください。
あなたのそのviewControllerはどうやって生成しました?
Webに溢れた情報では、
viewController = [HogeViewController alloc] initWithFrame:rect];
とかやっているところが多いのですが、これはアウトです。
実行してもscrollView内にHogeViewControllerの内容は表示されないでしょう。
理由は、storyboard上でレイアウトを決めているトコロにあります。
どうやら、storyboard上でレイアウトを設定したViewControllerはallocしてインスタンスを作っても、表示可能なviewが生成されていないようです。
では、どうやってインスタンスを引っ張ってくるか?
viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"HogeViewControllerId"];
これでOK。
あとはframeプロパティで位置、サイズを指定し、addSubViewで追加して出来上がりである。