隐藏标签栏后,安全区域会自行增加,但如果我再次显示标签栏,则不会减少

时间:2018-03-07 20:22:21

标签: swift safearealayoutguide

我在标签栏控制器中有一个视图控制器,对底部安全区域有约束,但其中一个我必须隐藏标签栏我用这个 self.tabBarController?.tabBar.isHidden = true 这增加了安全区域

但如果我需要移动到另一个我显示标签栏 self.tabBarController?.tabBar.isHidden = false 但安全区域本身并没有减少,使标签栏后面的视图内容

为了清楚起见我将红色视图固定在底部安全区域,接下来我去查看并隐藏标签栏 enter image description here

这是当它回到此视图并再次显示标签栏时,安全区域增加到标签栏下方,这就是为什么红色正方形更加低于 enter image description here

1 个答案:

答案 0 :(得分:1)

这似乎是iOS中的一个错误。隐藏/显示后,SafeArea不会更改为tabBar的帐户。

您可以通过将视图锚定到superview并手动调整tabBar来解决此问题。例如,如果要将tableView锚定到tabBar,它将看起来像这样

    if let tabBar = tabBarController?.tabBar {
        tabBar.isHidden = true
        tableViewBottomConstraint.constant = tabBar.frame.height
    }