Każdy problem z UITableView
wydajnością przewijania można rozwiązać za pomocą technik opisanych już w innych odpowiedziach. Jednak często powolne działanie jest spowodowane przez coś z natury błędnego lub powtarzającego się.
Fakt, że UITableView
ponownie wykorzystuje komórki oraz fakt, że każda komórka może potrzebować własnego obrazu - razem komplikuje rozwiązanie. Z ogólnego sposobu rozwiązania tego problemu podsumowuję rzeczy, którymi należy się zająć:
- Załaduj dane do źródła danych - z REST / bazy danych. Ten krok należy wykonać w tle, ewentualnie przy użyciu dispatch_async wraz z kolejką GCD.
- Twórz i inicjalizuj odpowiednie obiekty modelu danych i umieszczaj je w tablicy
[tableView reloaddata]
- Wewnątrz
cellForRowAtIndexPath
umieść kod, który ustawi dane (tekst) z prawidłowego obiektu modelu danych tablicy.
- Teraz obrazy mogą być również w formie adresu URL, więc ten krok może być nieco dziwaczny z powodu ponownego wykorzystania komórek w widoku tabeli. Istotą faktu jest ponowne załadowanie obrazu z pamięci podręcznej urządzenia / adresu URL za pomocą kolejki asynchronicznej, a następnie ustawienie prawidłowego cell.image (niezależnie od właściwości obrazu komórki).
Aby uniknąć problemów, zapoznaj się z tym samouczkiem dotyczącym leniwego ładowania obrazów w widoku tabeli.