在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属性即可。
文/Rockerliang(简书作者)
原文链接:http://www.jianshu.com/p/e2a904c281e4
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
原文链接:http://www.jianshu.com/p/e2a904c281e4
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。