Mam UITableView, którego źródło danych i delegat są przełączane między kilkoma niestandardowymi obiektami źródła danych, gdy użytkownik dotknie kontrolki podzielonej na segmenty (myślę, że "Top Płatne "vs" Najlepsze bezpłatne "w aplikacji sklepu z aplikacjami).Programowo wymuszaj zatrzymanie przewijania przez narzędzie UIScrollView, aby udostępnić widok tabeli z wieloma źródłami danych.
Każdy obiekt źródła danych zapisuje jego treść ostatni przewijania offsetu i przywraca go, gdy staje się aktywnym źródłem danych dla widoku tabeli wykonując:
tableView.contentOffset = CGPointMake(0, savedScrollPosition);
Działa to dobrze, gdy przełącza użytkownik źródła danych, gdy tabela jest w spoczynku, ale jeśli użytkownik uderzy w segmentowany element sterujący, gdy tabela nadal się porusza (tj. spowalnia), widok tabeli nadal zwalnia z poprzedniego offsetu, skutecznie zastępując moje przydziały contentOffset.
Czy istnieje sposób zmuszenia widoku tabeli do zatrzymania przewijania/zwalniania podczas ustawiania zestawu contentOffset lub innego sposobu wyświetlania tego typu widoku tabeli przełączalnych źródeł danych?
Funkcja scrollRectToVisible zrobiła to, wykorzystując zapisaną pozycję przewijania jako początek prostokąta i używając granic widoku tabeli jako wysokości. Masz absolutną rację, że metody przewijania * sterują przyspieszeniem w sposób, w jaki ustawienie kompensacji treści nie działa. –
'scrollRectToVisible' pracował również dla mnie. – zekel