texto teclado tamaño predictivo descargar cambiar aumentar ios iphone-x

ios - tamaño - teclado iphone descargar



iPhoneX y iPhone 8 altura del teclado son diferentes (2)

Yo uso el código de abajo para obtener la altura del teclado. Luego use esta altura para calcular el marco de una UIView para asegurarse de que esta UIView en la parte superior del teclado.

Pero en el simulador de iPhoneX la salida es 333 y el simulador de iPhone 8 es 258 .

PROBLEMA : Si usa rect.height como la altura del teclado para el simulador de iPhone 8, el diseño es correcto. Para el iPhone X hay una brecha entre el UIView y el teclado. Lo que significa que 333 es más alto que la altura real del teclado en el iPhone X.

¿Cuál es la razón de la altura son diferentes? ¿Y cómo conseguir la altura correcta del teclado?

NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow), name: .UIKeyboardWillShow, object: nil) @objc func keyboardWillShow(_ notification: NSNotification) { if let rect = (notification.userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue { print(rect.height) } }

Como esta imagen, el borde verde debe ser la parte extra. En realidad, necesito la parte roja justo en la parte superior del teclado sin el espacio recto verde.

EDITAR

De acuerdo, con la ayuda de @Craig encontré que este método solo era llamado por el iPhone X. Así que actualizo el cuadro aquí. Solo pega el código aquí.

La altura del fondo del área segura es 22.0 parece no ser correcta.

override func viewSafeAreaInsetsDidChange() { if #available(iOS 11.0, *) { super.viewSafeAreaInsetsDidChange() view.safeAreaInsets.bottom // This value is the bottom safe area place value. } }

EDIT2 Normalmente view.safeAreaInsets.bottom debería ser 34.0, pero si está utilizando la vista de contenedor, este valor puede ser diferente, ya que el mío es 22.0.


La altura del teclado para iPhone X y iPhone 8 debe ser correcta. Solo puedo suponer que tal vez tenga un problema en su código para ubicar la "parte roja", y suponga que la altura del teclado era incorrecta, mientras que el problema estaba en realidad en la ubicación de la vista. Ahora, ¿la razón del problema de ubicación? Mi segunda suposición es que la parte roja está anclada a la guía de diseño de área segura inferior, que en el iPhone 8 es 0, pero en el iPhone X está inserta 34 puntos.

Vea esta imagen para ilustrar tanto la diferencia en las alturas del teclado como que es posible dibujar un rectángulo justo encima del teclado utilizando la altura del teclado a partir de la altura del teclado indicada en la NSNotification para el método keyboardWillShow :

Si desea compartir su código / restricciones para posicionar la vista roja, debería poder mostrarle el problema.


Si bien la respuesta de Craig es correcta, es posible que no desee anclar su vista para ver.botada o la guía de puntos inferior en lugar de la parte inferior del área segura (especialmente si su teclado no está siempre abierto, y no desea que sus vistas cubran el indicador de inicio) zona).

Aquí hay una solución para estos casos. Se deduce la altura de la inserción inferior de la zona segura de la altura del teclado:

var keyboardHeight = ... // Get the keyboard height from keyboard notification if #available(iOS 11.0, *) { let bottomInset = view.safeAreaInsets.bottom keyboardHeight -= bottomInset }