Ok, więc to, co jest mi potrzebne, aby zapobiec tableview przewijania, gdy nowe elementy dodane powyżej aktualnej widzialnym rzędu. Używam NSFetchedResultsController z dużą ilością obiektów (np. 10 000) i reloadData działa całkiem gładko, gdy nie dotykam contentOffset.Upewnij UITableView utrzymać pozycję przewijania podczas dodawania komórki w górnym
Jednak, gdy staram się manipulować contentOffset utrzymać pozycję przewijania, gdy nowe wpisy są wstawiane zacznie zamarzać UI jak 300 ms, co jest złe dla mnie.
Czy ktoś może zasugerować lepsze (szybsze) rozwiązanie, w jaki sposób utrzymać tableview w tej samej komórce, gdy nowe elementy dodane na górze?
I to jest kod, który używam obecnie śledzić wstawki i przesunięcie contentOffset. Nie obsługuje animacji i różnych rozmiarów komórek.
Czy to działa: migawka 'firstVisibleIndexPath' w" controllerWillChangeContent ". W 'didChangeObject' zachowaj liczbę wierszy wstawionych przed' firstVisibleIndexPath'. Następnie w 'controllerDidChangeContent', obliczyć nowy wiersz (dodając liczbę), ponownie załadować tableView, a następnie' scrollToRowAtIndexPath' do nowej ścieżki indexPath. – pbasdf
upewnij się, że Twój szacowany rozmiar komórek nie jest ustawiony –