¿Cómo desplazar UITableViewCell a una posición específica?
Frecuentes
Visto 115 equipos
-1
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 next
UITextFieldnot being loaded.... currently I have tried writing an off set but it dosnt work if I select a
UITextField` 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];
1 Respuestas
2
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 ios objective-c uitableview uitextfield or haz tu propia pregunta.
¿Puedes lograr lo que quieres usando
[UITableView -scrollToRowAtIndexPath:atScrollPosition:animated:]
? - Aaron Brager