使用 NSLayoutContraints 添加第二个 child 视图控制器,始终将其放置在导航栏下方,而不是导航栏之后
Adding a second child view controller using NSLayoutContraints, always position it under the Navigation bar, not after the Navigationbar
UI 遇到了一个奇怪的问题。请在下面找到详细信息。
- 我创建了一个示例演示项目来展示这个问题。要求非常简单(也附有屏幕截图)。该应用程序以 ViewController 开头,它是一个 UINavigationController,因此它显示一个 NavigationBar。
- UI2 个元素的 SegmentController 已添加到 UINavigationBar。
- 有 2 个 child 表ViewController 将针对每个段选择显示。
- 每个 ViewController 都是使用 NSLayoutConstraints 添加的。并且每次都会删除旧的 child VC 并添加新的而不是隐藏和显示。虽然我们不会每次都创建 VC object。参考性强
- Child VC 被添加到 RootVC 的视图中,而不是具有 ContainerView。也尝试了 ContainerView,但结果相同。
现在的问题是,第二个 child VC 总是放在导航栏下面(请参阅随附的屏幕截图)。但第一个非常好,因为它位于 NavigationBar 下方。如果我将 NavigationBar translucent 属性 设置为 "NO",两者都可以正常工作。但是 NavigationBar 半透明 属性 为 "YES",只有第一个会正确放置,而不是第二个。 ChildViewController(第一个VC或第二个VC)无关紧要,它发生在第一个之后添加的childVC一。对这个奇怪的问题有什么见解吗?我已经创建了一个示例演示 project 如果你们想检查那里发生了什么..
提前致谢..
您是否禁用了选项:Auto adjust scrolls inset
?它有问题,仅适用于您视图控制器的第一个滚动视图
如果您想将滚动视图移动到导航栏下方,
请设置viewControllers 属性 self.automaticallyAdjustsScrollViewInsets = false;
UI 遇到了一个奇怪的问题。请在下面找到详细信息。
- 我创建了一个示例演示项目来展示这个问题。要求非常简单(也附有屏幕截图)。该应用程序以 ViewController 开头,它是一个 UINavigationController,因此它显示一个 NavigationBar。
- UI2 个元素的 SegmentController 已添加到 UINavigationBar。
- 有 2 个 child 表ViewController 将针对每个段选择显示。
- 每个 ViewController 都是使用 NSLayoutConstraints 添加的。并且每次都会删除旧的 child VC 并添加新的而不是隐藏和显示。虽然我们不会每次都创建 VC object。参考性强
- Child VC 被添加到 RootVC 的视图中,而不是具有 ContainerView。也尝试了 ContainerView,但结果相同。
现在的问题是,第二个 child VC 总是放在导航栏下面(请参阅随附的屏幕截图)。但第一个非常好,因为它位于 NavigationBar 下方。如果我将 NavigationBar translucent 属性 设置为 "NO",两者都可以正常工作。但是 NavigationBar 半透明 属性 为 "YES",只有第一个会正确放置,而不是第二个。 ChildViewController(第一个VC或第二个VC)无关紧要,它发生在第一个之后添加的childVC一。对这个奇怪的问题有什么见解吗?我已经创建了一个示例演示 project 如果你们想检查那里发生了什么..
提前致谢..
您是否禁用了选项:Auto adjust scrolls inset
?它有问题,仅适用于您视图控制器的第一个滚动视图
如果您想将滚动视图移动到导航栏下方,
请设置viewControllers 属性 self.automaticallyAdjustsScrollViewInsets = false;