2015-02-23 47 views
1

我有一個基本的UIScrollView設置在一個UIViewController中,它位於UINavigationController中。我使用autolayout來使滾動視圖填充視圖控制器,並且在滾動視圖內有一個內容視圖,該視圖包含一些其他視圖。據我所知,這是正確的設置。UIScrollView內容在第一次加載時位於導航欄下

當視圖控制器首次加載(即推入導航堆棧)時,滾動視圖和滾動條的內容出現在導航欄後面。但是,當我將設備旋轉到橫向時,然後回到縱向時,內容會移到導航欄下方的正確位置。

我確實希望內容在導航欄後面滾動,但它應該在其下面開始。我爲我的UIViewController在IB中打開了automaticallyAdjustsScrollViewInsets。就像我所說的那樣,在旋轉設備後我得到了正確的行爲,而不是在初始加載時。

任何想法,爲什麼這可能會發生,我能做些什麼來解決它?謝謝!

回答

3

通過關閉automaticallyAdjustsScrollViewInsets並在viewWillLayoutSubviews中手動完成解決此問題,如下所示。

override func viewWillLayoutSubviews() { 
    super.viewWillLayoutSubviews() 
    let insets = UIEdgeInsets(top: self.topLayoutGuide.length, left: 0, bottom: 0, right: 0) 
    scrollView.contentInset = insets 
    scrollView.scrollIndicatorInsets = insets 
} 

不知道原來的問題是什麼,但這個工程現在。但是,如果有人對原始問題有所瞭解,請告訴我!

相關問題