2013-07-16 6 views
23

Używam UICollectionView i potrzebują globalną nagłówek i stopkę wraz z nagłówków sekcji. Zarówno globalny nagłówek, jak i stopka powinny przewijać się wraz z resztą treści. Zasadniczo powinny one działać dokładnie tak samo jak właściwości tableHeaderView i tableFooterView UITableView.UICollectionView Nagłówek i stopka Zobacz

diagram

Z tego co rozumiem dodatkowe widoki są powyżej lub poniżej określonej widoków przekroju i dekoracje są functionless. Mój globalny nagłówek i stopka mają mieć elementy interaktywne.

Jestem naprawdę ciągnięcie moich włosów po wypróbowaniu na kilka godzin. Znalazłem kilka nieprzyjemnych sposobów, takich jak włamywanie się z contentInsets i dodawanie podglądu do widoku kolekcji. To, czego naprawdę szukam, to czysty sposób na zrobienie tego.

Czekam na wszelkie rady!

+4

Ten biedny facet tutaj prosi dokładnie to samo pytanie, ale bez odpowiedzi: http://stackoverflow.com/questions/14515975/how -can-i-set-the-cały-widok-nagłówka-do-widoku-podświetlenia? rq = 1 – paul

+0

możliwy duplikat [Sposób tworzenia widoku dodatkowego widoku w UICollectionView, jak robią nagłówki sekcji w prostym stylu UITableView] (http: // stackoverflow .pl/pytania/13511733/how-to-make-supplementa ry-view-pływak-in-uicollectionview-as-sekcja-headers-DO-I) – staticVoidMan

+0

jeśli Nagłówek i stopka jest stała, a następnie można go dodać ręcznie w góry i na dole CollectionView nadzieję swoją pomoc. – Prabhat

Odpowiedz

-2

Fix to w metodzie cellForItemAtIndexPath delegata

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { 
if (indexPath.section == 0) 
    { 
     // first section 
    } 
else if (indexPath.section == [dataSourceSectionsArray.count]-1) 
    { 
     // last section 
    } 
else 
    { 
     // normal section 
    } 
} 

I należy oczywiście zwrócić [dataSourceSectionsArray.count] +2 (jeden nagłówek, jedna stopka) w metodzie numberOfRowsInSection i pamiętać, aby zawsze odnoszą się do [dataSourceSectionsArray objectAtIndex: indexPath.row-1], gdy masz dostęp do swoich danych w normalnej komórce, ponieważ nie ma żadnego obiektu odpowiadającego nagłówka w tablicy.

4

Zarówno Globalny nagłówek i stopka są komórki (UICollectionViewCell) pierwszego i ostatniego odcinka

+0

To jest akceptowalna odpowiedź. Niech to będzie proste, nie ma potrzeby, aby było bardziej skomplikowane – Ducky

4

Będziesz musiał stworzyć własny układ widok zwyczaj gromadzenia i źródła danych. Źródło danych zwróci globalne nagłówki i stopki globalne oraz nagłówki i stopki sekcji, a niestandardowy układ widoku kolekcji będzie musiał odpowiednio je ustawić.

TO NIE JEST bardzo prosty proces.

W rozmowie WWDC Zaawansowane interfejsy użytkownika z widokami kolekcji opisują swoje podejście z przykładowym kodem na temat tworzenia globalnego nagłówka. Możesz użyć ich przykładowego kodu, a następnie dodać do tego globalną sekcję stopki.

od Apple:

Advanced User Interfaces with Collection Views

Demonstrates code factoring, swipe to edit, drag reordering, and a sophisticated custom collection view layout.