2011-06-21 10 views
9

Tengo problemas para utilizar este UITableView method:Error en UITableView (deleteSections: withRowAnimation:)?

- (void)deleteSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation 

En primer lugar la documentación dice:

animación: SÍ para animar la eliminación de las secciones, de lo contrario NO.

Pero la animación es en realidad el parámetro de tipo de enumeración UITableViewRowAnimation, no BOOL!?

Entonces, ¿cómo puedo deshabilitar la animación? He intentado NO y UITableViewRowAnimationNone. Nada funciona. La eliminación de la sección siempre está animada.

Sé que puedo usar [tableView reloadData] en su lugar. Eso resolvería mi problema. Solo tengo curiosidad si es un problema conocido y si es posible deshabilitar la animación con este método de vista de tabla.

Gracias!

+0

¿Ha encontrado la solución? –

Respuesta

4

Acerca de SÍ/NO en el documento, mientras que el parámetro es del tipo UITableViewRowAnimation, supongo que esto es un descanso de una versión anterior de la API donde el parámetro era antes un BOOL. De todos modos, la documentación es realmente incorrecta.

No dude en enviar una retroalimentación a Apple para esto (utilizando el "Está bien, pero ..." en la parte inferior de la doc)

2

Bueno, obviamente la documentación es de hecho con errores. El parámetro que pasa dice cómo se anima la eliminación. Si pasa UITableViewRowAnimationNone, la actualización ocurre instantáneamente sin animación. Sin embargo, cuando tiene una sección debajo de la que elimina, se moverá hacia arriba de una manera animada.

Debe intentar hacer uso de las animaciones. De esta forma, un usuario puede ver lo que sucede.

1

Creo necesita integrar la llamada deleteSections dentro de un bloque beginUpdates :

[tableView beginUpdates]; 
[tableView deleteSections:... withRowAnimation:... ]; 
[tableView endUpdates]; 

El documentation parece decir esto de todos modos. No he probado esto con UITableRowViewAnimationNone sin embargo.

43

Es una especie de un corte, pero esto se deshace de la animación de inserción:

[UIView setAnimationsEnabled:NO]; 
[self.tableView insertRowsAtIndexPaths:insertedIndexPaths withRowAnimation:UITableViewRowAnimationNone]; 
[UIView setAnimationsEnabled:YES]; 
+0

¡guau! eso funcionó para mí ... gracias –

+0

@samvermette ¡gracias! ¡gracias! después de una hora de frustrarme, esta era la respuesta que necesitaba. –

+0

Gracias, hombre, muy buena respuesta! – Eugene

Cuestiones relacionadas