gpt4 book ai didi

ios - UINavigationController 作为 UITabBarController 的 child 留下了一个空白

转载 作者:搜寻专家 更新时间:2023-10-31 08:11:59 25 4
gpt4 key购买 nike

在我的应用程序中,我有一个 UITabBarController 作为 Root View 。我有两步模态视图,将通过使用导航 Controller 进行导航。我遇到了一个问题,当我将 UINavigationController 添加为 UITabBarController 的子级时,导航 Controller 底部留下了一个标签栏大小的间隙。请参阅所附图片(为丑陋道歉,它仅用于演示目的)。

enter image description here

图中,底部的白色条是标签栏,蓝色背景是当前选中标签的 View Controller 。黄色是导航 Controller 中包含的 View Controller 。红色是在将导航 Controller 作为子项添加到选项卡栏 Controller 时创建的间隙。

这仅在选项卡栏设置为不透明时发生。导航 Controller 上扩展布局的边缘没有区别。似乎无论我做什么,我都无法做任何事情。

我正在以一种非常简单的方式添加导航 Controller :

    addChildViewController(navigationController)
view.addSubview(navigationController.view)
navigationController.view.setTranslatesAutoresizingMaskIntoConstraints(false)

view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-20-[view]-20-|", options: nil, metrics: nil, views: ["view" : navigationController.view]))
view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-100-[view]-100-|", options: nil, metrics: nil, views: ["view" : navigationController.view]))

如果我将导航 Controller 设置为应用程序委托(delegate)中的 Root View Controller ,它会正确显示,底部没有间隙。

这是标签栏和导航 Controller 之间交互的错误,还是我可以做些什么来防止这种情况?

最佳答案

导航中包含的 View Controller 需要扩展边缘集。此外,extendedLayoutIncludesOpaqueBars 必须在包含的 View Controller 上设置为 true。我将以下内容添加到将包含在导航 Controller 中的 View Controller 中:

edgesForExtendedLayout = UIRectEdge.Bottom
extendedLayoutIncludesOpaqueBars = true

关于ios - UINavigationController 作为 UITabBarController 的 child 留下了一个空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31682720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com