¿Cómo puedo hacer que un UITextField se mueva hacia arriba cuando el teclado está presente, al comenzar a editar?
Frecuentes
Visto 634,082 veces
1728
Con el SDK de iOS:
Tengo un UIView
con UITextField
s que muestran un teclado. Lo necesito para poder:
Permitir el desplazamiento del contenido de la
UIScrollView
para ver los otros campos de texto una vez que se abre el teclado"Saltar" automáticamente (desplazándose hacia arriba) o acortando
Sé que necesito un UIScrollView
. Intenté cambiar la clase de mi UIView
a una UIScrollView
pero sigo sin poder desplazar los cuadros de texto hacia arriba o hacia abajo.
¿Necesito tanto un UIView
y UIScrollView
? ¿Entra uno en el otro?
¿Qué se debe implementar para desplazarse automáticamente al campo de texto activo?
Idealmente, la mayor parte posible de la configuración de los componentes se realizará en Interface Builder. Me gustaría escribir código solo para lo que lo necesite.
Nota la UIView
(o UIScrollView
) con el que estoy trabajando aparece en una barra de pestañas (UITabBar
), que debe funcionar con normalidad.
Editar: estoy agregando la barra de desplazamiento solo para cuando aparece el teclado. Aunque no es necesario, siento que proporciona una mejor interfaz porque el usuario puede desplazarse y cambiar los cuadros de texto, por ejemplo.
Lo tengo funcionando donde cambio el tamaño del marco del UIScrollView
cuando el teclado sube y baja. Simplemente estoy usando:
-(void)textFieldDidBeginEditing:(UITextField *)textField {
//Keyboard becomes visible
scrollView.frame = CGRectMake(scrollView.frame.origin.x,
scrollView.frame.origin.y,
scrollView.frame.size.width,
scrollView.frame.size.height - 215 + 50); //resize
}
-(void)textFieldDidEndEditing:(UITextField *)textField {
//keyboard will hide
scrollView.frame = CGRectMake(scrollView.frame.origin.x,
scrollView.frame.origin.y,
scrollView.frame.size.width,
scrollView.frame.size.height + 215 - 50); //resize
}
Sin embargo, esto no "mueve hacia arriba" ni centra automáticamente los campos de texto inferiores en el área visible, que es lo que realmente me gustaría.
0 Respuestas
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas ios objective-c uiscrollview uitextfield uikeyboard or haz tu propia pregunta.
Mira esto. No te preocupes. TPKeyboardEvitar - Aruna
Está documentado por Apple, creo que es la mejor manera: desarrollador.apple.com/library/ios/#documentation/StringsTextFonts/… - user1199624
Use este código Solo necesita 1 línea en el archivo appdelegate.m y funciona. github.com/hackiftekhar/IQKeyboardManager - Pradeep Mittal
La mejor forma que encontré hasta ahora es este código abierto. TPKeyboardEvitar - Mongi Zaidi
Otra forma es agregar dichos campos de texto de contenido y todo en TableViewController y dejar que tableview maneje esto. - Vicky Dhas