我做了简单的解决方案,按下文本字段,打开键盘并向上移动视图。但问题是,它正在移动它有点太高,并覆盖第一textField
。我不想为此制作scrollView。还有其他解决方案吗?
像这样我按照上面描述的那样做:
NotificationCenter.default.addObserver(self, selector: #selector(RegisterViewController.keyboardWillShow), name: NSNotification.Name.UIKeyboardWillShow, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(RegisterViewController.keyboardWillHide), name: NSNotification.Name.UIKeyboardWillHide, object: nil)
func keyboardWillShow(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
if self.view.frame.origin.y == 0{
self.view.frame.origin.y -= keyboardSize.height
}
}
}
func keyboardWillHide(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
if self.view.frame.origin.y != 0{
self.view.frame.origin.y += keyboardSize.height
}
}
}
在这里你可以看到它的作用:
答案 0 :(得分:0)
您有一些选择:例如:
答案 1 :(得分:-1)
有许多第三方库可供使用,例如https://github.com/hackiftekhar/IQKeyboardManager或https://github.com/michaeltyson/TPKeyboardAvoiding。
您可以使用其中任何一种,并且忘记了自己的键盘处理。这些很酷的库可以处理大部分事情。