ContainerView 中 TableView 的最后一行隐藏在 TabBar 后面

The last Row of TableView in a ContainerView is Hidden Behind TabBar

构建具有标签栏的应用程序。其中一个选项卡,我需要使用容器视图,因为我在三个 table 视图之间切换。这种切换效果很好,所以为了清楚起见,我不会向您展示这些代码。但是,那些 table 隐藏在标签栏后面。像:

我正在使用故事板,容器视图是这样的:

所以我特意将容器放在标签栏的顶部,因为我不想重叠。然后使用这些代码,我认为这会帮助我找到容器的边界并将其设置为 tableView:

代码行 vc.view.frame = self.contentView.bounds; 就是我要说的。但这根本不起作用,很明显,因为 table 仍然在标签栏后面。

我在网上找到了一些解决方案,比如设置 tableView in viewDidLoad 的 consentInsent,取消勾选 tabbar 的一些属性,让 tabbar 不透明。 None 的工作。我基本上问这个的原因。我不得不这样做,因为我找不到适合我的案例的解决方案。

希望你能看到问题并帮助我解决问题。

如果您需要更多信息/解释,请问我。

如有任何建议,我们将不胜感激。

谢谢!

尝试从情节提要中取消选中视图控制器底部栏 属性 下的 。如果它不起作用也取消选中 Adjust ScrollView Inset 属性 那里。

此外,您必须确保 bottom Layout constraint 必须设置为 Bottom Layout Guide 而不是 superview。

标签栏不显示的地方设置约束如下

请尝试这样设置约束,希望对您有所帮助。

我遇到了类似的问题,但没有 table 视图,只有 Swift。无论如何,我的视图隐藏在我的标签栏后面。

if let tabBarController = tabBarController {
    tabBarController.tabBar.isTranslucent = false
}

在 UITabBarController 显示的 UIViewController 中使用它为我解决了这个问题。我在导航栏上遇到了同样的问题,这就是为什么我找到了答案 here 但它也适用于标签栏。