在xib(storyboard)中使用 UIScrollView, 默認(rèn)是勾選了autolayout選項的,在autolayout下,iOS計算UIScrollView的contentsize的機制是略有不同。在autolayout中,會在viewDidAppear之前根據(jù)subview的constraint重新計算UIScrollView的contentsize。 當(dāng)在viewdidload里手動設(shè)置contentsize時,會再重新計算一次,把前面手動設(shè)置的值覆蓋掉。
iOS7中,需在viewDidLayoutSubviews中設(shè)置scrollView.contentSize屬性
-(void)viewDidLayoutSubviews
{
self.scrollView.contentSize = CGSizeMake(xx,xx);
}
iOS8及以上,只需要在viewDidAppear方法中設(shè)置就好了
-(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
self.scrollView.contentSize = CGSizeMake(xx,xx);
}
所以,如果要最低支持iOS7系統(tǒng),只需在viewDidLayoutSubviews中設(shè)置contentSize屬性即可。