¿Cómo desplazar UITableViewCell a una posición específica?

Tengo un UITableView, Cada UITableViewCell tiene un UITextField. Cuando un UITextField se selecciona animo el UITableView en la pantalla y luego cambio el UITableView tamaño para que el usuario pueda ver el UITableViewCell que el UITextField es en.

Actualmente todo funciona y el UITableViewCell se muestra en la parte inferior, el problema es que cuando el usuario presiona la tecla Intro, trato de configurar el siguiente UITableViewCell UITextField como el primer respondedor, desplácese a la vista... sin embargo, el problema es que este siguiente campo aún no está cargado, por lo que tengo problemas para acceder a él.

Me gustaría saber si hay una forma de desplazar inicialmente el primer UITableViewCell seleccionado/ UITextField 2 or 3 up from the bottom so when enter is hit there is no worry about the nextUITextFieldnot being loaded.... currently I have tried writing an off set but it dosnt work if I select aUITextField` que está en la mitad inferior de la pantalla... así es como se ve el código.

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {

CGRect rc = [textField bounds];
rc = [textField convertRect:rc toView:self.finishingTableView];
CGPoint pt = rc.origin;
pt.x = 0;
if(rc.origin.y > 200)
    pt.y -=  150;
else
    pt.y -= rc.origin.y;
    [self.finishingTableView setContentOffset:pt animated:YES];

preguntado el 15 de febrero de 14 a las 20:02

¿Puedes lograr lo que quieres usando [UITableView -scrollToRowAtIndexPath:atScrollPosition:animated:]? -

1 Respuestas

UITableView tiene un método para eso:

- (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UITableViewScrollPosition)scrollPosition animated:(BOOL)animated

Puedes jugar con scrollPosition para lograr un resultado deseado.

Respondido 15 Feb 14, 20:02

Con respecto a este método, ¿puedo llamarlo solo cuando se muestra el teclado, ya que no hay problema con mi código actual cuando el teclado no se muestra? - hurknburks

El único problema que tengo con scrollToRowAtIndexPath es que mueve la UITableViewCell seleccionada a la mitad o arriba la primera vez, lo cual está bien... pero luego, si el usuario selecciona algo que no es la última celda, me da resultados no deseados... - hurknburks

También acabo de probar usando UITableViewScrollPositionMiddle y si selecciono algo en la mitad inferior de UITableView, causa el mismo problema, donde no se desplaza a la posición media y cuando presiona Intro pierde UITextField Focus. - hurknburks

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.