UITableView: mover una fila a una sección vacía

votos
4

Tengo un UITableViewcon algunas secciones vacías. Me gustaría que el usuario pueda mover una fila hacia ellos usando los controles de modo de edición estándar. La única forma en que puedo hacerlo hasta ahora es tener una fila ficticia en mis secciones vacías y tratar de ocultarla usando tableView:heightForRowAtIndexPath:para dar a la fila ficticia una altura de cero. Esto parece dejarlo como una fila de 1 píxel. Probablemente pueda ocultar esto haciendo un tipo especial de celda que esté llena [UIColor groupTableViewBackgroundColor], ¿pero hay una mejor manera?

Esto es todo en el modo agrupado de UITableView.

ACTUALIZACIÓN: Parece que mover filas a secciones vacías es posible sin ningún truco, pero la sensibilidad es lo suficientemente mala como para que USTED necesite trucos para que sea utilizable para usuarios generales (que no serán lo suficientemente pacientes como para pasar lentamente la fila alrededor de la sección vacía hasta que las cosas hagan clic).

Publicado el 17/03/2009 a las 17:07
fuente por usuario
En otros idiomas...                            


3 respuestas

votos
1

He descubierto que en iOS 4.3, la fila ficticia tiene que tener una altura de al menos 1 pixel con el fin de dar el efecto deseado de permitir que una fila se mueva en esa sección.

También encontré que la fila ficticia sólo es necesaria en la primera y última sección; las secciones intermedias no tienen este problema.

Y parece que en IOS 5.0, no hay filas ficticias o trucos especiales son necesarios en absoluto.

Respondida el 20/12/2011 a las 02:22
fuente por usuario

votos
0

He descubierto que si regresa -1.0 a partir del método heightForRowAtIndexPath que eliminará la línea de 1 píxel.

Respondida el 08/01/2011 a las 13:16
fuente por usuario

votos
0

Al administrar la edición, puede controlar si la vista de tabla está en el modo de edición. Use esa bandera dentro de cellForRowAtIndexPathpara decidir el clima o no para mostrar la fila 'en blanco'. Mientras está en el modo "normal", la fila no se mostrará, pero cuando el usuario toque "editar", se debe llamar nuevamente a cellForRowAtIndexPath y esta vez decidir mostrar la fila. Los detalles de cómo hacerlo dependen de su origen de datos y de cómo lo está pegando a la pantalla. Si no recibe la llamada nuevamente, puede insertar filas manualmente con insertRowsAtIndexPaths/ deleteRowsAtIndexPathsy / o llamar reloadDatapara forzar una actualización.

Respondida el 17/03/2009 a las 17:24
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more