UINavigationController によって表示されるツールバーを含むビューがあります。
UIKeyboardWillShowNotification を処理しているとき、画面全体をキーボードの高さだけ上にスクロールしています。問題は、キーボードが表示されているときで、下部のツールバーが表示されていないため、画面を上に (keyboard.height - toolbar.height) だけスクロールする必要があることです。
しかし、ツールバーの高さを取得する方法は?
ありがとう
UINavigationController によって表示されるツールバーを含むビューがあります。
UIKeyboardWillShowNotification を処理しているとき、画面全体をキーボードの高さだけ上にスクロールしています。問題は、キーボードが表示されているときで、下部のツールバーが表示されていないため、画面を上に (keyboard.height - toolbar.height) だけスクロールする必要があることです。
しかし、ツールバーの高さを取得する方法は?
ありがとう
ツールバーのフレームを確認するだけです。
self.navigationController.toolbar.frame.size.height
もちろん、ナビゲーションコントローラーがある場合にのみ機能します...
同様の解決策を探しましたが、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 です。