如何以编程方式获取tabbar的高度?

Nie*_* R. 53 iphone uitabbarcontroller uikit uitabbar ios

我发现UITabBar的高度是49px(或50px,具体取决于来源).

因为我不喜欢在我的代码中使用太多的硬编码值,我想知道是否可以以编程方式检索tabbar的高度.

亲切的问候,
Niels R.

PS:我问的原因是因为我有一个视图控制器(包含文本字段的列表视图),它只是由navigationcontroller(pushViewController)推送或呈现为模态(presentModalViewController).一旦键盘出现,视图的大小就会减小,但我必须考虑到只有在按下视图控制器时才能看到标签栏,而不是作为模态显示.

Mas*_*son 134

我不完全理解你的PS,但你可以这样做:

tabBarController?.tabBar.frame.size.height
Run Code Online (Sandbox Code Playgroud)

  • 高度是49 (7认同)
  • 我想现在是:self.tabBarController?.tabBar.frame.size.height (2认同)
  • @NaXir对于iPhone X不再如此,所以现在这非常相关。 (2认同)

小智 14

如果你想获得UITabBar控件的标准高度,那么你可以这样做:

    UITabBarController *tabBarController = [UITabBarController new];
    CGFloat tabBarHeight = tabBarController.tabBar.frame.size.height;
Run Code Online (Sandbox Code Playgroud)

  • 这是一个糟糕的答案..你从头开始创建一个全新的UITabBarController,这是完全没必要和浪费的.如果您需要TabBar的高度,您应该获得当前tabBar的高度. (4认同)
  • 我喜欢这个答案.这是我最喜欢的答案.如果您使用的是Objective C,我推荐这个答案 (2认同)

Nic*_*nto 10

漂亮

CGRectGetHeight(self.tabBarController.tabBar.frame)
Run Code Online (Sandbox Code Playgroud)


Ada*_*aka 6

在你的 vc 中检查这个

bottomLayoutGuide.length
Run Code Online (Sandbox Code Playgroud)