【发布时间】:2018-03-30 07:40:26
【问题描述】:
我有设备旋转后键盘高度的问题:
guard let keyboardSize = sender.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue else { return }
let keyboardHeight = keyboardSize.cgRectValue.height
与正常值不同。正常键盘高度(在测试设备上)为 398,旋转后高度为 142。
更多上下文:
我编写了一个仅限 iPad 的应用程序,该应用程序的视图始终应保持在中心 (Y),即使显示键盘也是如此。对于这种情况,我将中心 Y 约束作为出口。我为 UIKeyboardWillShow 和 UIKeyboardWillHide 通知注册了我的 ViewController。当调用隐藏通知时,我将约束常量设置为 0。当调用显示通知时,我根据剩余的视图空间 (view.height - keyboard.height) 计算新的中心 Y。
当第一次调用UIKeyboardWillShow 时,一切正常。但是在我旋转设备后,键盘高度不同,我的计算给了我一个错误的值。
如何在显示键盘的情况下正确计算旋转后的中心 Y?
【问题讨论】:
标签: ios swift ipad rotation uikeyboard