8

Mam więc UICollectionView, którego chcę użyć do wyświetlania wielu UICollectionViewCells i różnych nagłówków w zależności od stanu użytkownika. Problem polega na tym, że nie mogę się zarejestrować wiele widoków UICollectionResuableView (nagłówek) w serii ujęć. Jeśli spróbuję zarejestrować jeden jako stopkę i użyć go jako nagłówka, aplikacja się zawiesza. Nie widzę też nigdzie w serii ujęć, aby zadeklarować liczbę sekcji, które mogłyby złagodzić problem. Na razie muszę użyć wielu UICollectionViews i ukryć/odkryć widok kolekcji, który chcę wyświetlić na podstawie potrzebnego nagłówka. Czy istnieje lepszy sposób to zrobić, lub sposób rejestrowania wielu widoków nagłówka w tym samym UICollectionView w storyboard?Zarejestruj dodatkowy widok nagłówka w tym samym UICollectionView za pomocą scenorysów

Odpowiedz

11

Nie można zarejestrować więcej niż jednego nagłówka w UICollectionView w scenorysie, ale można zarejestrować dowolną ich liczbę w kodzie. Powinieneś utworzyć jak najwięcej nagłówków w plikach nib (Jeden nib na nagłówek, z nagłówkiem jako obiektem najwyższego poziomu) i zarejestrować je w instancji widoku kolekcji w viewDidLoad.

Można to zrobić z registerNib:forSupplementaryViewOfKind:withReuseIdentifier: method.

+1

Próbowałem metody registerClass: znacznie czystsze podejście. Wciąż byłoby miło móc ustawić tę wartość w widoku kolekcji wewnątrz storyboardu. –

+0

Używana metoda rejestrowania zależy od tego, czy chcesz zaimplementować swój interfejs w NIB, czy w kodzie, który przypuszczam. Zazwyczaj używam podejścia NIB. –

+4

Co za absurdalne ćwiczenie w frustracji. Sądzę, że powinienem po prostu umieścić go w oddzielnym stalówce na początek. – TylerJames