1. 程式人生 > >xib中 UIScrollView 設定contentSize 問題

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



文/Rockerliang(簡書作者)
原文連結:http://www.jianshu.com/p/e2a904c281e4
著作權歸作者所有,轉載請聯絡作者獲得授權,並標註“簡書作者”。