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属性即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容