在故事板中,视图控制器具有半透明导航栏,根视图为UIScrollView
。
一切正常,UIScrollView
有正确contentInsets
(自动设置),内容显示在半透明导航栏后面。
突然,在推送任何视图控制器后,使用performSegueWithIdentifier:
或使用IB的关系,目标VC的根视图显示在导航栏下方,甚至虽然它被标记为显示在顶部栏下并被设置为自动调整内容插入。
为了确保按下的视图控制器没有问题,我推动了同一个视图控制器,一个工作正常的控制器 - 但是在推动后导航栏变得不透明。
它发生在iOS 7和8上,任何屏幕尺寸。它不会发生在我的应用程序中的其他导航控制器上。
在推送之后,知道为什么根视图会显示在导航栏下吗?
更新
将推送的视图控制器的根视图更改为UIView
而不是UIScrollView
时,它可以正常工作。
因此,当以UIScrollView
作为根视图推送视图控制器时,会发生这种情况。一些调试信息在3.5" screen(_pagesScrollView是对根视图的UIScrollView引用) -
_pagesScrollView.contentInset = {0, 0, 0, 0}
_pagesScrollView.frame = {{0, 0}, {320, 480}}
self.view.frame = {{0, 0}, {320, 480}}
你可以看到这次没有设置contentInset,高度是480,但看起来(0,0)的原点 导航栏。
在另一个带有UIScrollView
的VC之后推送具有UIScrollView
根视图的VC时,似乎会出现此问题。
更新2
修复了问题 - 为什么view.frame.origin(0,0)显示在导航栏下,当视图控制器在顶部栏下有#34;"和"调整内容插入"启用?