我正在尝试为 iOS 创建一个聊天界面,该界面会根据键盘的存在而展开和缩小。
我已经使用观察者实现了它,因为键盘会显示和消失通知及其工作。
func keyboardWillDisappear(notification: NSNotification){
var userInfo:NSDictionary = notification.userInfo!
var keyboardSize = userInfo.objectForKey(UIKeyboardFrameEndUserInfoKey)!.CGRectValue().size
var oldViewFrame : CGRect = self.view.frame
self.view.frame = CGRectMake (0, 0, oldViewFrame.width, oldViewFrame.height + keyboardSize.height)
}
func keyboardWillAppear(notification: NSNotification){
var keyboardSize = userInfo.objectForKey(UIKeyboardFrameEndUserInfoKey)!.CGRectValue().size
var oldViewFrame : CGRect = self.view.frame
self.view.frame = CGRectMake (0, 0, oldViewFrame.width, oldViewFrame.height - keyboardSize.height)
}
现在在某种程度上这是可行的,但是如果用户试图激活或停用预测输入建议,事情就会爆炸。 keyboardWillAppear 被调用但 keyboardWillDisappear 没有被调用,因此每次启用预测时 View 都会一次又一次地缩小
这样做一定有更简单、更安全的方法,如果还有其他需要注意的地方请告诉我。 谢谢
最佳答案
你还需要观察
UIKeyboardWillChangeFrameNotification
和/或
UIKeyboardDidChangeFrameNotification
关于ios - 如何根据键盘大小正确实现 View 的缩小和扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31080344/