Qualsiasi problema con le UITableView
prestazioni di scorrimento può essere risolto utilizzando tecniche già descritte in altre risposte. Tuttavia, molte volte le prestazioni lente sono causate da qualcosa di intrinsecamente errato o ripetitivo.
Il fatto che UITableView
riutilizzi le celle e il fatto che ogni cella possa aver bisogno della propria immagine, insieme rendono la soluzione un po 'complessa. Da come viene risolto in modo generale, qui riassumo le cose che dovrebbero essere prese in considerazione:
- Carica i dati nell'origine dati - da REST / database. Questo passaggio dovrebbe essere eseguito in background, eventualmente utilizzando dispatch_async insieme alla coda GCD.
- Creare e inizializzare gli oggetti del modello di dati rilevanti e inserirli in un array
[tableView reloaddata]
- All'interno
cellForRowAtIndexPath
, includere il codice che imposterà i dati (testo) dall'oggetto del modello di dati corretto dell'array.
- Ora le immagini potrebbero anche essere sotto forma di URL, quindi questo passaggio potrebbe essere un po 'bizzarro a causa del riutilizzo delle celle eseguito dalla visualizzazione tabella. Il cuore del fatto è caricare ancora una volta l'immagine dalla cache / URL del dispositivo utilizzando la coda asincrona, quindi impostarla per correggere cell.image (qualunque sia la proprietà dell'immagine della tua cella).
Per evitare problemi, fare riferimento a questo tutorial sul caricamento lento delle immagini nella vista tabella.