11

我有一个带有 UINavigationController 提供的工具栏的视图。

当我处理 UIKeyboardWillShowNotification 时,我将整个屏幕向上滚动键盘的高度。问题是当键盘显示时,底部工具栏没有,所以我只需要向上滚动屏幕(keyboard.height - toolbar.height)。

但是如何获得工具栏的高度呢?

谢谢

4

2 回答 2

28

您只需要检查工具栏框架。

self.navigationController.toolbar.frame.size.height

当然,它只有在你有导航控制器的情况下才有效......

于 2012-07-05T13:27:31.217 回答
0

我搜索了类似的解决方案,但在 iPhone X、XS 和未来型号等设备上遇到了问题。例如,在 iPhone XS 上高度为 49,但这不是正确的高度。经过一番研究,我找到了另一种检测工具栏高度的解决方案:

目标-C:

CGFloat screenHeight = [UIScreen mainScreen].bounds.size.height
CGFloat toolbarTop = self.navigationController.toolbar.frame.origin.y
CGFloat originalHeight = screenHeight - toolbarTop

斯威夫特 5:

let screenHeight = UIScreen.main.bounds.size.height
let toolbarTop = self.navigationController.toolbar.frame.origin.y
let originalHeight = screenHeight - toolbarTop

这将显示另一个数字。例如在 XS 上是 83

于 2021-04-14T08:17:41.187 回答