Con el SDK de iOS:
Tengo una UIView
con UITextField
s que muestra un teclado. Lo necesito para poder:
Permita el desplazamiento del contenido del
UIScrollView
para ver los otros campos de texto una vez que aparezca el tecladoAutomáticamente "salta" (desplazándose hacia arriba) o acorta
Sé que necesito a UIScrollView
. Intenté cambiar la clase de mi UIView
a a UIScrollView
pero todavía no puedo desplazar los cuadros de texto hacia arriba o hacia abajo.
¿Necesito tanto a UIView
como a UIScrollView
? ¿Uno va dentro del otro?
¿Qué debe implementarse 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 solo código para lo que lo necesita.
Nota: el UIView
(o UIScrollView
) con el que estoy trabajando aparece en una barra de pestañas ( UITabBar
), que debe funcionar normalmente.
Editar: estoy agregando la barra de desplazamiento solo cuando aparece el teclado. Aunque no es necesario, creo que proporciona una mejor interfaz porque, por ejemplo, el usuario puede desplazarse y cambiar cuadros de texto.
Lo tengo funcionando donde cambio el tamaño del cuadro 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 "sube" o centra automáticamente los campos de texto inferiores en el área visible, que es lo que realmente me gustaría.