xib中 UIScrollView 设置contentSize 问题

在xib(storyboard)中使用 UIScrollView, 默认是勾选了autolayout选项的,在autolayout下,iOS计算UIScrollView的contentsize的机制是略有不同。在autolayout中,会在viewDidAppear之前根据subview的constraint重新计算UIScrollView的contentsize。 当在viewdidload里手动设置contentsize时,会再重新计算一次,把前面手动设置的值覆盖掉。

iOS7中,需在viewDidLayoutSubviews中设置scrollView.contentSize属性

-(void)viewDidLayoutSubviews
{
    self.scrollView.contentSize = CGSizeMake(xx,xx);
}

iOS8及以上,只需要在viewDidAppear方法中设置就好了

-(void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    self.scrollView.contentSize = CGSizeMake(xx,xx);
}

所以,如果要最低支持iOS7系统,只需在viewDidLayoutSubviews中设置contentSize属性即可。

你可能感兴趣的:(xib中 UIScrollView 设置contentSize 问题)