2011-03-09 20 views
5

Ho un UITableViewController che popola un UITableView con alcuni dati che tolgo dalla rete. I dati di ogni cella sono costituiti anche da un'immagine utilizzata come sfondo, che sto scaricando in una NSOperation separata aggiunta a NSOperationQueue con unimpostato su 4. Finché l'immagine non viene scaricata sto mostrando un segnaposto generico che Vorrei sostituire (dissolvenza/dissolvenza) con l'immagine scaricata una volta scaricata correttamente.Animazione di dissolvenza UITableViewCell

Sto usando il seguente codice inserito nello cellForRowAtIndexPath di 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]; 

Questo è, purtroppo, solo lavorando in modo casuale per un paio di righe, in quanto per la maggior l'immagine di sfondo è impostato immediatamente, come se l'animazione ha iniziato su una cella sarebbe stata "sovrascritti" con la chiamata successiva di beginAnimations .

risposta

8

UITableView ha il supporto integrato per la ricarica di fila con un'animazione dissolvenza, basta chiamare [tableView reloadRowsAtIndexPaths:... withRowAnimation:UITableViewRowAnimationFade] e assicurarsi che il vostro cellForRowAtIndexPath non restituisce l'istanza UITableViewCell che è già nella tabella.

+0

Sembra che debba essere chiamato dopo il completamento del layout tableview. – shiami

+0

Qualche frammento di codice per favore? –

Problemi correlati