Tengo una vista que tiene campos de texto que van desde la parte superior de la pantalla hasta la parte inferior de la pantalla. Obviamente, los campos inferiores de texto quedan tapados por el teclado cuando aparece, así que me dispuse a deshacerme de este problema.ScrollRectToVisible no funciona según lo previsto
me registro para notificaciones en el método viewDidLoad
, a continuación, cuando se envía el UIKeyboardDidShowNotification
, este método se llama:
- (void)keyboardWasShown:(NSNotification*)aNotification
{
NSDictionary* info = [aNotification userInfo];
CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
UIEdgeInsets contentInsets = UIEdgeInsetsMake(0.0, 0.0, kbSize.height, 0.0);
scrollView.contentInset = contentInsets;
scrollView.scrollIndicatorInsets = contentInsets;
[scrollView scrollRectToVisible:activeField.frame animated:YES];
}
El problema no es nada se está desplazado en absoluto, y mucho menos desplazado a visible. ¿Que me estoy perdiendo aqui?
Todos mis campos de texto se encuentran dentro de una vista de desplazamiento, etc.
Gracias de antemano.
Establezca el tamaño del contenido, asegurándose de que ni el ancho ni la altura sean cero. A continuación, agregue o reste de contentInset height hasta que funcione. scrollView.contentSize = CGSizeMake (kbSize.width, kbSize.height); scrollView.contentInset = UIEdgeInsetsMake (0, 0, kbSize.height - 250, 0); // (arriba, izquierda, abajo, derecha) –