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 に答える