La altura en el retrato y la altura en el paisaje medidos en puntos.¿Cuál es la altura del teclado en pantalla del iPhone?
Respuesta
La altura del teclado es 216pts para el modo vertical y 162pts para el modo horizontal.
Si va a publicar preguntas auto-respondidas, al menos dé respuestas decentes. El tamaño del teclado debe obtenerse del objeto de notificación, no un valor codificado de algún sitio web. Ver [aquí] (http://developer.apple.com/library/ios/DOCUMENTATION/UIKit/Reference/UIWindow_Class/UIWindowClassReference/UIWindowClassReference.html#//apple_ref/doc/constant_group/Keyboard_Notification_User_Info_Keys) – jrturton
@jrturton Eche un vistazo a : http://stackoverflow.com/questions/4213878/what-is-the-height-of-ipads-onscreen-keyboard. Solo publiqué esta pregunta, porque alguien me dio una respuesta con la altura para iPhone y pensé que también debería haber una pregunta para iPhone. –
@jrturton La pregunta no es cómo encontrar la altura mediante programación. Esta pregunta no solo es útil para programadores, sino también para diseñadores gráficos y demás. La respuesta que está solicitando pertenece a otra pregunta. De hecho, hay otra pregunta con esa respuesta: stackoverflow.com/a/7302291/310121 –
I utilizó el siguiente enfoque para la determinación del marco del teclado en iOS 7.1.
En el método init de mi controlador de vista, I registrado para el UIKeyboardDidShowNotification
:
NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
[center addObserver:self selector:@selector(keyboardOnScreen:) name:UIKeyboardDidShowNotification object:nil];
Entonces, he utilizado el código siguiente en keyboardOnScreen:
para obtener acceso al marco del teclado. Este código obtiene el diccionario userInfo
de la notificación y luego accede al NSValue
asociado con UIKeyboardFrameEndUserInfoKey
. A continuación, puede acceder al CGRect y convertirlo a las coordenadas de la vista de su controlador de vista. A partir de ahí, puede realizar cualquier cálculo que necesite en función de ese marco.
-(void)keyboardOnScreen:(NSNotification *)notification
{
NSDictionary *info = notification.userInfo;
NSValue *value = info[UIKeyboardFrameEndUserInfoKey];
CGRect rawFrame = [value CGRectValue];
CGRect keyboardFrame = [self.view convertRect:rawFrame fromView:nil];
NSLog(@"keyboardFrame: %@", NSStringFromCGRect(keyboardFrame));
}
Swift
Y la aplicación equivalente con Swift ... suscribirse a la notificación:
NSNotificationCenter.defaultCenter().addObserver(self,
selector: "keyboardShown:", name: UIKeyboardDidShowNotification, object: nil)
Y el método que calcula el tamaño del teclado:
func keyboardShown(notification: NSNotification) {
let info = notification.userInfo!
let value: AnyObject = info[UIKeyboardFrameEndUserInfoKey]!
let rawFrame = value.CGRectValue()
let keyboardFrame = view.convertRect(rawFrame, fromView: nil)
println("keyboardFrame: \(keyboardFrame)")
}
Swift 2.0
NSNotificationCenter.defaultCenter().addObserver(self,
selector: "keyboardShown:", name: UIKeyboardDidShowNotification, object: nil)
Y el método que calcula el tamaño del teclado:
func keyboardShown(notification: NSNotification) {
let info = notification.userInfo!
let value: AnyObject = info[UIKeyboardFrameEndUserInfoKey]!
let rawFrame = value.CGRectValue
let keyboardFrame = view.convertRect(rawFrame, fromView: nil)
print("keyboardFrame: \(keyboardFrame)")
}
SWIFT 3,0
Observador
NotificationCenter.default.addObserver(self, selector: #selector(keyboardShown), name:NSNotification.Name.UIKeyboardWillShow, object: nil);
Método
func keyboardShown(notification: NSNotification) {
let info = notification.userInfo!
let keyboardFrame: CGRect = (info[UIKeyboardFrameEndUserInfoKey] as! NSValue).cgRectValue
print("keyboardFrame: \(keyboardFrame)")
}
Si bien parece un poco complicado, esto es mucho mejor que codificar el tamaño del teclado. Respuesta correcta. – n13
Votaron esta respuesta y rechazaron la pregunta. OP definitivamente no sabe de lo que está hablando. ¡Ten cuidado muchachos! Esta respuesta es la correcta! –
Debe ser la respuesta correcta – tiguero
Recuerde que, con iOS 8, el tamaño del teclado en pantalla puede variar. No asuma que el teclado en pantalla siempre estará visible (con una altura específica) o invisible.
Ahora, con iOS 8, el usuario puede también deslizar el área de texto de predicción de encendido y apagado ... y cuando lo hacen, sería poner en marcha keyboardWillShow
caso de una aplicación de nuevo .
Este se romper un montón de ejemplos de código legado, que recomendó que escriben un evento keyboardWillShow
, que sólo mide la altura actual del teclado en pantalla y cambiar su control hacia arriba o hacia abajo en la página de esta cantidad (absoluta) .
En otras palabras, si usted ve cualquier código de ejemplo, que sólo le dice que usted agregue un evento keyboardWillShow
, mida la altura del teclado, a continuación, cambiar el tamaño de las alturas de sus diversos controles en esta cantidad, esto ya no quieren ninguna siempre trabajo.
En mi ejemplo anterior, utilicé el código de muestra del siguiente sitio, que anima el valor de las restricciones verticales constant
.
En mi aplicación, he añadido una restricción a mi UITextView
, se establece en la parte inferior de la pantalla. Cuando apareció la pantalla por primera vez, guardé esta distancia vertical inicial.
Entonces, cada vez que mi caso keyboardWillShow
se inició, me añadir el (nuevo) a la altura del teclado este valor restricción original (por lo que la limitación cambia el tamaño de la altura del control).
Sí. Es feo
Y estoy un poco molesto/sorprendido de que el AutoLayout horriblemente doloroso de XCode 6 no solo nos permita unir la parte inferior de los controles a la parte inferior de la pantalla o la parte superior del teclado en pantalla.
Quizás me esté perdiendo algo.
Aparte de mi cordura.
en realidad, el tamaño del teclado siempre varía, incluso en las versiones anteriores de iOS. p.ej. verificar la escritura en idioma chino – ReDetection
Ooops, no me di cuenta de eso. Me pareció extraño que tantas muestras de "keyboardWillShow" siempre supusieran que este evento se llamaría * una vez * cuando el teclado aparecía o desaparecía ... sin ninguna funcionalidad para hacer frente al teclado que permanece en pantalla, pero cambiando su tamaño. –
@MikeGledhill Creo que deberás usar "UIKeyboardWillChangeFrameNotification" para el cambio de fotograma debido a la rotación o mostrar (/ ocultar) la barra de predicción de texto ... –
versión nota: esto ya no tiene valor en iOS 9 & 10, ya que admiten tamaños de teclado personalizados.
esto depende del modelo y la barra QuickType:
** nota de versión **: esto ya no tiene valor en iOS 9 y 10, ya que admiten tamaños de teclado personalizados. – Raptor
@Raptor gracias! Agregué esta sugerencia a mi respuesta. –
La altura del teclado depende del modelo, la barra QuickType, la configuración del usuario ... El mejor enfoque es calcular dinámicamente:
Swift 3,0
var heightKeyboard : CGFloat?
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardShown(notification:)), name: NSNotification.Name.UIKeyboardDidShow, object: nil)
}
func keyboardShown(notification: NSNotification) {
if let infoKey = notification.userInfo?[UIKeyboardFrameEndUserInfoKey],
let rawFrame = (infoKey as AnyObject).cgRectValue {
let keyboardFrame = view.convert(rawFrame, from: nil)
self.heightKeyboard = keyboardFrame.size.height
// Now is stored in your heightKeyboard variable
}
}
¡Solución perfecta, gracias! –
no puedo encontrar la última respuesta, así que comprobarlo todo con el simulador (IOS 11,0)
dispositivo. | Altura de la pantalla | Retrato | Paisaje
iPhone 4s | 480.0 | 216.0 | 162.0
iPhone 5, iPhone 5s, iPhone SE | 568.0 | 216.0 | 162.0
iPhone 6, iPhone 6s, iPhone 7, iPhone 8, iPhone X | 667.0 | 216.0 | 162.0
iPhone 6 plus, iPhone 7 plus, iPhone 8 plus | 736.0 | 226.0 | 162.0
iPad 5ta generación, iPad Air, iPad Air 2, iPad Pro 9.7, iPad Pro 10.5, iPad Pro 12.9 | 1024.0 | 265.0 | 353.0
¡Gracias!
- 1. ¿Cuál es la resolución de la pantalla del iPhone?
- 2. Localización del diseño del teclado en pantalla
- 3. Personalización del teclado del iPhone
- 4. Configuración del idioma del teclado del iPhone
- 5. Notificación para cambiar la altura del teclado del iPad
- 6. iPhone 5 Tamaño del teclado
- 7. iPhone: Bloques de teclado en pantalla
- 8. Obtener barra de estado del iPhone Altura
- 9. Cambia el color del teclado en iphone
- 10. Cómo verificar el teclado del iPhone ¿Desea encender/apagar el sonido del teclado en la configuración?
- 11. ¿Cuál es la tasa de animación de teclado predeterminada del iPhone?
- 12. Obtener el tamaño del teclado en pantalla del iPad después de la rotación
- 13. teclado del iPhone, botón Listo y resignFirstResponder
- 14. Dimensiones del teclado del iPad
- 15. Ocultar el teclado del iPhone usando Javascript
- 16. Mostrar el teclado del iPhone programáticamente
- 17. Disposición del teclado del iPhone para números negativos?
- 18. MKPinAnnotationView: Anchura y altura del pasador
- 19. Detección de puntos brillantes/oscuros en la pantalla del iPhone
- 20. Captura de pantalla del iPhone para ver
- 21. ¿Cómo acomodar la resolución de la pantalla del iPhone 4?
- 22. UIKeyboardWillShowNotification y UIKeyboardDidShowNotification informan mal altura del teclado
- 23. Detectar la orientación de la pantalla del iPhone
- 24. Creando capturas de pantalla del iPhone 5
- 25. Cómo deshabilitar el botón Ir en el teclado del iPhone
- 26. Mostrando el teclado del iPhone en diferentes idiomas según la entrada del usuario
- 27. teclado del teclado numérico no muestra la tecla de retorno en el iphone
- 28. Imágenes para la pantalla retina del iphone 5
- 29. Bloquear y desbloquear mediante programación la pantalla del iPhone
- 30. ¿Detecta la ocultación del teclado del iPad frente a la conexión del teclado externo?
Aquí puede encontrar todas las dimensiones de un iPhone: [iPhone dimensions] (http://www.titaniumtips.com/files/tag-dimensions.php) – Pfitz
¡No utilice el último enlace de "dimensiones de iPhone"! Es a partir de 2011, antes de que apareciera iOS 8, y permitió que la altura del teclado en pantalla varíe. –
@MikeGledhill la altura del teclado en pantalla varía incluso antes de iOS 8. – ReDetection