Xcode 获取 UITabBar 的高度

7

我的应用程序以tabBarController作为主控制器,我需要从任何视图控制器中获取tabBar的高度,以便计算其余元素的正确位置。如何通过编程方式获取它?谢谢。

2个回答

17

我强烈建议您设置视图层次结构,使外部视图由容器视图自动调整大小,然后更具体的内部视图可以检查外部布局视图的边界并在适当的时间进行适当的布局。

然而,如果您的要求使这不可能(或者极其复杂,确实需要为每个元素指定点),您可以使用UIViewControllertabBarController属性获取选项卡栏的高度:

// from inside the view controller
CGSize tabBarSize = [[[self tabBarController] tabBar] bounds].size;

1
有一种情况,我认为知道 tabBar 的高度是有帮助的,即使视图已经按照您建议的自动调整大小。这种情况是当一个视图必须被调整以考虑键盘的出现时。在这种情况下,键盘将重叠 tabBar 以及受影响的视图的一部分,因此该视图必须通过键盘高度和 tabBar 高度之间的差异来进行自我调整。我想到的是 tabBar 是 rootViewController,而活动视图是其后代的情况。 - David Ravetti
1
我有完全相同的使用情况。在使用 tabBar 时,当键盘显示时,是否有更好的方法来调整元素的插图/高度/起点? - Trevor Gehman

4

如果要使用Swift,请使用以下方法:

let tabBarHeight = tabBarController?.tabBar.bounds.size.height ?? 0

如果tabBarController不为nil,则返回tabBar高度,否则返回0。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接