Я сделал простое решение, нажимаю текстовое поле, открываю клавиатуру и перемещаю вверх. Но проблема в том, что она перемещает его слишком высоко и покрывает сначала 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
}
}
}
Здесь вы можете увидеть, что он делает:
Это вид таблицы или просто простой вид? –
Это происходит на первом шоу или когда вы скрываете/показываете несколько раз? Попробуйте удалить ваши операторы if и вместо этого сделайте следующее: self.view.frame.origin.y = -keyboardSize.height (show) и self.view.frame.origin.y = 0 (скрыть) – alexburtnik
Это вид jus. Это происходит каждый раз, когда я нажимаю textField. И ваше решение не сработало :(Он делает то же самое. –