Ho un problema difficile per quanto riguarda l'aggiornamento il mio TableView, ottengo risultati diversi con metodi diversi di aggiornarlo, mi spiego:TableView reloadData vs. beginUpdates & endUpdates
Situazione 1: Io uso [tbl reloadData];
dove tbl
è il mio TableView, per aggiornare TableView - funziona come previsto.
Situazione 2 che utilizzo:
[tbl beginUpdates];
[tbl reloadRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationRight];
[tbl endUpdates];
Dove tbl
è la mia TableView, e indexPaths
è un array contenente tutti i indexPaths presenti nel TableView. Ora la matrice è a posto, contiene tutti i indexPath corretti (double e triple checked) ma per qualche ragione - questo non funziona come previsto.
Ora mi rendo conto che questo è un problema XY (dove chiedo Y ma il mio problema è davvero X perché penso che risolvere Y risolverà X) e questo è solo perché sento che è un po 'complicato spiegare X (la conseguenza di detto sopra il problema) in un modo semplice, quindi preferirei astenermi da ciò se possibile.
Quindi, fino alla mia domanda: C'è una differenza tra i due modi di aggiornare il TableView (a parte il bit dell'animazione ovviamente) o dovrei sospettare che il problema si trovi altrove?
EDIT: Va bene, cercherò di spiegare quali sono i sintomi:
Nel cellForRowAtIndexPath
-Metodo aggiungo un pulsante per ogni cella con un tag assegnato che è uguale alla riga indexPath della cella , come ad esempio:
btn.tag = indexPath.row;
il motivo per cui faccio questo è così posso identificare ogni tasto come tutti chiamano la stessa funzione:
- (void)btnPressed:(id)sender
Quando aggiorno le celle - perché alcuni valori nelle celle sono cambiati - La situazione 1 rende tutto a posto, tuttavia la situazione 2 - mescola i tag in modo che la prossima volta che uno dei pulsanti viene premuto, non abbiano più il tag corretti.
Il mix-up sembra casuale per me, ma la randomizzazione si verifica in modo diverso a seconda del pulsante delle celle che premo per primo. Spero che questo chiarisca il mio problema.
"ottengo risultati diversi", "questo non funziona come previsto". In quale modo? – TigerCoding
Bene, ogni cella riceve un pulsante al momento della creazione, con un tag, dove "il tag button = la riga del percorso dell'indice". Nella Situazione 1 il pulsante ottiene il tag corretto, in Situazione 2 - non lo fa. –