2015-02-23 51 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 
} 

不知道原来的问题是什么,但这个工程现在。但是,如果有人对原始问题有所了解,请告诉我!

相关问题