[Tips]UIScrollView + Storyboard + AutoLayout

UIScrollView を Storyboard でかう AutoLayout を利用したまま、うまく動作させるのに毎回忘れて戸惑うので残しておきます。
UIScrollViewが思うようにスクロールしないこと多いですよね。。。

Storyboard

1.ViewControllerのSizeをFreeformにする
scrollview_01

2.ViewControllerの横幅を表示したいコンテンツの幅にする(例:640)
scrollview_02

3.ViewControllerの構成はこんな感じ。ScrollViewの中にUITableViewを2つ横並びで入れました。
scrollview_03

見た目は横幅が2枚分ある状態になります。
scrollview_04

4.ViewControllerとのひも付けも忘れずに。
scrollview_05

Storyboard は以上です。

Code

5. ViewController.h
//今回はSclViewという名前にしてあります
@property (weak, nonatomic) IBOutlet UIScrollView *SclView;

6.ViewController.m
viewDidLoadではなくviewDidLayoutSubviewsで色々指定します。
– (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];

//コンテンツの幅を指定する(2で指定した横幅と同じ。例:640)
[self.SclView setContentSize: CGSizeMake(640.0, 420)];
//ScrollView自体の幅を画面のサイズに指定する(コンテンツの横幅 > ScrollViewの横幅)
self.ScrollContainer.frame = CGRectMake(self.ScrollContainer.frame.origin.x, self.ScrollContainer.frame.origin.y, 320, 420);
}

ここまでできたらBuidして完成です!