我正面临一个奇怪的 UI 问题。请在下面找到详细信息。
- 我创建了一个示例演示项目来展示这个问题。要求非常简单(也附有屏幕截图)。该应用程序以一个 ViewController 开始,它是一个 UINavigationController,因此它显示一个 NavigationBar。
- 已将 2 个元素的 UISegmentController 添加到 UINavigationBar。
- 有 2 个子 TableViewController 将针对每个段选择显示。
- 每个 ViewController 都是使用 NSLayoutConstraints 添加的。并且每次都会删除较旧的子 VC,并添加新的而不是隐藏和显示。虽然我们不是每次都创建 VC 对象。具有很强的借鉴意义
- 子 VC 被添加到 RootVC 的 View 中,而不是有一个 ContainerView。也尝试了 ContainerView,但结果相同。
现在的问题是,第二个子 VC 总是放在导航栏下面(请引用所附的屏幕截图)。但第一个非常好,因为它位于 NavigationBar 下方。如果我将 NavigationBar 半透明属性设置为“NO”,两者都可以正常工作。但是当 NavigationBar 半透明属性为“YES”时,只有第一个会被正确放置而不是第二个。哪个 ChildViewController(firstVC 或 secondVC)并不重要,它发生在第一个之后添加的 childVC。对这个奇怪的问题有什么见解吗?我创建了一个示例演示 project如果你们想检查那里发生了什么..
提前致谢..
最佳答案
您是否禁用了选项:Auto adjust scrolls inset
?它有问题,仅适用于您 View Controller 的第一个 ScrollView
关于ios - 使用 NSLayoutContraints 添加第二个 subview Controller ,始终将其放置在导航栏下方,而不是导航栏之后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42574303/