Cualquier problema con UITableView
el rendimiento de desplazamiento puede resolverse utilizando las técnicas ya descritas en otras respuestas. Sin embargo, muchas veces el rendimiento lento es causado por algo intrínsecamente erróneo o repetitivo.
El hecho de que UITableView
reutilice las celdas y el hecho de que cada celda pueda necesitar su propia imagen hace que la solución sea un poco compleja. De cómo se está resolviendo de la manera general, aquí resumo cosas que deben tenerse en cuenta:
- Cargar datos en el origen de datos - desde REST/base de datos. Este paso debe hacerse en segundo plano, utilizando finalmente dispatch_async junto con la cola de GCD.
- crear e inicializar los objetos del modelo de datos relevantes y ponerlos dentro de una matriz
[tableView reloaddata]
- Dentro
cellForRowAtIndexPath
, incluyen código que establecerá los datos (texto) desde correcta modelo de datos de objetos de la matriz.
- Ahora, las imágenes también pueden tener forma de URL, por lo que este paso podría ser poco peculiar debido a la reutilización de células realizada por la vista de tabla. El corazón del hecho es cargar una vez más la imagen desde la memoria caché/URL del dispositivo usando la cola asincrónica, luego configurarla para corregir cell.image (cualquiera que sea su propiedad de imagen de celda).
Para evitar problemas, consulte este tutorial sobre lazy loading of images dentro de la vista de tabla.
Si necesita almacenar en caché las alturas de las celdas (que puede ser costoso de calcular y también se utilizan con frecuencia), he dado un ejemplo. Solo use esto si es adecuado en su aplicación. http://stackoverflow.com/questions/1371223/how-do-i-cache-something-for-a-tableview/10992748#10992748 –