Mam widok na kolekcję z uzupełnieniemView dla każdej sekcji. W każdym uzupełniającym widoku Mam kilka przycisków. W metodzie dataSource: collectionView: viewForSupplementaryElementOfKind: atIndexPath: Ustawiam znaczniki przycisków za pomocą indexPath.section. Po naciśnięciu przycisku wykonałem kilka metod delegowania i wysłałem sekcję (button.tag) jako parametr.UICollectionView: Czy istnieje sposób na przeładowanie tylko widoków dodatkowych?
Wszystko działa poprawnie, ale tu pojawia się problem:
- kiedy wstawić lub usunąć sekcję musi zaktualizować tagi guziki, ale nie chcę, aby przeładować wszystkie elementy z każdej sekcji.
Próbowałem:
- uzyskać supplementaryViews metodą DataSource CollectionView: viewForSupplementaryElementOfKind: atIndexPath: i nazywają layoutIfNeeded metodę dla każdego supplementaryView, w ten sposób Dodatkowe widoki są przeładowywane, ale to podejście zwielokrotnia moje dodatkowe widoki.
- szybka dla w collectionView.subviews i dostać tylko supplementaryView i nazywają layoutIfNeeded metodę, ale nie przeładować, tylko układ jest przeładunek.
- reloadSections: metoda, ale to reload wszystkie pozycje z sekcji
Ohh .. i używam NSFetchedResultsController (delegata) do wstawiania i usuwania części.
Czy ktoś może mi w tym pomóc? Czy istnieje sposób, aby ponownie załadować tylko uzupełniający widok? Czy istnieje inne podejście do tego scenariusza?
Dziękujemy!
I rozwiązać go.Używam niestandardowych * UICollectionViewLayoutAttributes * dla mojego * uzupełnionego widoku *, a jednym z niestandardowych atrybutów jest * NSInteger *, który przechowuje sekcję oraz w metodzie delegowania NSFetchedResultsController * controllerDidChangeContent: * po wstawieniu lub usunięciu sekcji, unieważniam układ widoku kolekcji. Nie jestem pewien, czy to najlepsza praktyka, ale działa i czas jest teraz ważny :) – Irina