Domanda

Ho un UITableView che sto caricando tramite JSON. Quindi la mia logica è questa:

  1. Scarica il JSON (NSOperation, richiamando al thread principale)
  2. Nella richiamata, analizzare il JSON, e inserire nuovi dati nella matrice di origine dei dati del mio tavolo.
  3. Chiamata reloadData sul TableView per mostrare i nuovi dati.

La mia domanda è: come posso animare l'arrivo di nuovi righe della tabella? In questo momento non mi resta che li popping in esistenza in una sola volta, e quello che voglio fare è farli animano a posto, perché questo sembra più fresco modo.

Credo che quello che voglio è quello di utilizzare:

 [self.theTableView insertRowsAtIndexPaths:insertIndexPaths withRowAnimation:UITableViewRowAnimationRight];

Ma che mi dà le denunce di runtime circa le dimensioni dell'aggiornamento essere diverso rispetto alla dimensione nell'origine dati.

Mi sto perdendo qualcosa su come dovrebbe essere usato quel metodo? Qualcuno sa di un esempio in cui qualcuno sta animando nuove righe in una TableView tramite questo modello?

Aggiornamento: Fondamentalmente, ho risolto questo grazie alla guida di Ben, con il seguente approccio:

  1. Inizia con [self.theTableView beginUpdates];
  2. Quando ho ciclo sopra le mie voci nel JSON, inserirli all'inizio della mia matrice, incrementando il loro indice di volta in volta attraverso il ciclo.
  3. Chiama insertRowsAtIndexPath ogni volta attraverso il ciclo, in questo modo:

    * NSIndexPath indexPath;             indexPath = [NSIndexPath indexPathForRow: [self.theChatEntries indexOfObject: messaggio] inSection: 0];             [InsertRowsAtIndexPaths self.theTableView: [NSArray arrayWithObject: indexPath] withRowAnimation: NO];

  4. Fine con endUpdates al di fuori del ciclo.

Woot.

È stato utile?

Soluzione

Sei sulla strada giusta; è necessario avvolgere le chiamate a -insertRowsAtIndexPaths: withRowAnimation:. con un [self.theTableView beginUpdates] e [self.theTableView endUpdates]

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top