Simple gadget life programming diary

Simple gadget life の中の人によるプログラミングメモ

UIScrollViewで上に余分な隙間が出来てしまう時の回避方法

追記

こちらに解決方法を書きました。
UITableViewの上にヘッダー分の隙間が開くときの対処法 - Simple gadget life programming diary

SCrollViewのエリアをグレーに、貼り付けるViewを赤にして再現。
ちなみにグレーのエリアと赤いViewは同じ高さ。下のキャプチャでは赤いViewが埋まったようになっている。

f:id:jtaka1012:20140522134826j:plain

調べるとどうやら64pix分余分な隙間がある。
そのため以下のようにして回避。

    UIScrollView *_scrollView = [UIScrollView new];
    _scrollView.frame = CGRectMake(0, 164, 320, 320);
    _scrollView.pagingEnabled = NO;
    _scrollView.showsVerticalScrollIndicator = NO;
    _scrollView.showsHorizontalScrollIndicator = YES;
    _scrollView.scrollsToTop = NO;
    _scrollView.backgroundColor = [UIColor grayColor];
    _scrollView.delegate = self;

    //赤いView。y座標開始位置を-64に。
    UIView *kariview = [[UIView alloc]initWithFrame:CGRectMake(0, -64, 1320, 320)]; 
    kariview.backgroundColor = [UIColor redColor];
    [_scrollView addSubview:kariview];

    //ScrollViewのcontentSizeの高さも-64に。
    _scrollView.contentSize = CGSizeMake(kariview.bounds.size.width, kariview.bounds.size.height-64); 
    _scrollView.bounces = YES;

    [self.view addSubview:_scrollView];

これで実行すると、

f:id:jtaka1012:20140522135522j:plain

ちゃんと表示される。上下にも動かない。
本当はもっと正しい設定方法があるような気がする。。