2011-03-09 23 views
5

Tengo un UITableViewController que rellena un UITableView con algunos datos que saco de la red. Los datos para cada celda consisten también en una imagen utilizada como fondo, que descargo en una NSOperation separada agregada a NSOperationQueue con un MaxConcurrentOperationCount establecido en 4. Siempre que la imagen no se descargue, mostraré un marcador de posición genérico que Me gustaría reemplazar (desvanecimiento/desvanecimiento) con la imagen descargada una vez que se haya descargado con éxito.Animación de desvanecimiento UITableViewCell

Estoy usando el siguiente código colocado dentro del cellForRowAtIndexPath del UITableViewController.

[UIView beginAnimations:@"fade" context:nil]; 
[UIView setAnimationBeginsFromCurrentState:YES]; 
[UIView setAnimationDuration:3.0]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
cell.placeholderUIImage.alpha = 0.0; 
cell.backgroundUIImage.alpha = 1.0; 
[UIView commitAnimations]; 

Desgraciadamente, esto es sólo trabajar al azar por un par de filas, ya que para la mayoría de la imagen de fondo se ajusta al instante, como si la animación comenzó en una célula habría sido "sobrescrito" por la siguiente llamada de beginAnimations .

Respuesta

8

UITableView ha incorporado soporte para la recarga de una fila con una animación de la decoloración, simplemente llame [tableView reloadRowsAtIndexPaths:... withRowAnimation:UITableViewRowAnimationFade] y asegúrese de que su cellForRowAtIndexPath no devuelve la instancia UITableViewCell que ya está en la mesa.

+0

Parece que se debe invocar después de completar el diseño de la vista de tabla. – shiami

+0

Cualquier fragmento de código por favor? –

Cuestiones relacionadas