Qualquer problema com o UITableView
desempenho de rolagem pode ser resolvido usando técnicas já descritas em outras respostas. No entanto, muitas vezes o desempenho lento é causado por algo inerentemente errôneo ou repetitivo.
O fato de que UITableView
reutiliza as células e o fato de que cada célula pode precisar de sua própria imagem - juntos torna a solução um pouco complexa. De como está sendo resolvido de forma geral, aqui eu resumo as coisas que devem ser cuidadas:
- Carregue dados na fonte de dados - de REST / banco de dados. Esta etapa deve ser executada em segundo plano, eventualmente usando dispatch_async junto com a fila GCD.
- Crie e inicialize objetos de modelo de dados relevantes e os coloque dentro de uma matriz
[tableView reloaddata]
- Dentro
cellForRowAtIndexPath
, inclua o código que definirá os dados (texto) do objeto de modelo de dados correto da matriz.
- Agora, as imagens também podem ser na forma de URL, então esta etapa pode ser um pouco peculiar por causa da reutilização de células feita pelo table view. O cerne do fato é carregar mais uma vez a imagem do cache / URL do dispositivo usando a fila assíncrona e, em seguida, configurá-la para corrigir cell.image (qualquer que seja a propriedade da imagem da sua célula).
Para evitar problemas, consulte este tutorial sobre carregamento lento de imagens dentro da exibição de tabela.