我使用UINavigationController作为我的根视图并将UIViewController实例推送到堆栈。
我的视图控制器全部来自基础,它在viewWillAppear期间绘制径向渐变背景。
将NavigationBar.translucent属性设置为NO / false时,推入堆栈的第一个视图控制器将其视图框架的y组件设置为NavigationBar的高度,从而有效地在导航栏和视图内容之间创建空白区域。后续视图控制器被推入堆栈没有这个问题。
我在我的导航控制器中覆盖了pushViewController,如果navigationController.viewControllers数组为空,则将NavigationBar.translucent设置为YES。这样做可以摆脱第一个视图控制器上的空间,但这并不是我想要的,因为我不想要半透明的导航条。
我在各个生命周期阶段打印出视图的框架,只有第一个视图修改了y组件,其他视图的框架y设置为0.我没有在任何视图控制器中修改根视图框架。
我的问题是,我做错了什么?我知道这是第一个视图控制器的问题,因为我的覆盖,但由于我没有看到关于这个的大量帖子,我认为我做错了。
我的问题与此类似:Container View getting pushed down as if it had a UINavigationBar?
答案 0 :(得分:0)
您需要将Adjust Scroll View Insets
设置为false。要修复它,请尝试:
InterfaceBuild: https://stackoverflow.com/a/26567240/846780
代码: self.automaticallyAdjustsScrollViewInsets = NO;