2013-08-03 20 views
13

Mam widoku zbierania, działa dobrze, i wyregulowaniu separację X obicia,ios UICollectionView w górnej/dolnej części między komórkami

i działa dobrze, ale wyściółki Y pomiędzy komórkami , nie wydaje się, aby dostosować się do żadnego oddzielenia

to jest mój kod na układ

UICollectionViewFlowLayout *layoutItem=[[UICollectionViewFlowLayout alloc] init]; 
    layoutItem.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0); 

enter image description here więc jak mogę ustawić rozdzielanie na górnej/dolnej do 0px? Pomiędzy komórkami ?,

dziękuję!

Odpowiedz

43

widać tylko dopełnienie y po raz pierwszy. I dla pokazania dolnej części wypełnienia potrzebujesz więcej danych niż wysokość klatki CollectionView. Podczas przewijania w górę widoku kolekcji zobaczysz dopełnienie dolne y.

użyłem CollectionView jak ten

https://stackoverflow.com/a/17856406/1305001

Kiedy ustawić

- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section 
{ 
    return UIEdgeInsetsMake(60, 10, 50, 10); 
} 

Wyjście przyjdzie jako Pierwszy raz ..

enter image description here

Kiedy przewijane w górę collecti OnView widać dolną wyściółkę ..

enter image description here

Służy do odstępów między komórkami linii pionowo

- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section 
{ 
    return 5; 
} 

będzie wyglądać

enter image description here

+0

cześć dzięki, mój błąd, którego nie wyjaśniłem poprawnie, to oddzielenie komórek na górze, na dole, czyli brak miejsca na y między komórkami, zredagowałem moje pytanie i głosowałem w górę dzięki – MaKo

+0

sprawdź edytowane odpowiedź, przekazanie 0 zamiast 5 pozwoli ci nie mieć pionowej przestrzeni między komórkami. – Warewolf

5

Można również zrobić to znacznie prostszy sposób korzystania z układu przepływu widoku kolekcji.

Skonfiguruj układ przepływowy (pamiętaj, aby dodać delegata w nagłówku):

UICollectionViewFlowLayout * stickerFlowLayout = [[UICollectionViewFlowLayout alloc] init]; 

stickerFlowLayout.scrollDirection = UICollectionViewScrollDirectionHorizontal; 
**stickerFlowLayout.minimumLineSpacing = 10;** 
stickerFlowLayout.minimumInteritemSpacing = 5; 
stickerFlowLayout.sectionInset = UIEdgeInsetsMake(10, 25, 20, 25); 

// Set up the collection view 
collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:stickerFlowLayout]; 
collectionView.delegate = self; 
collectionView.dataSource = self; 

etc 

Jak widać możemy łatwo ustawić linię rozstaw przy użyciu:

**stickerFlowLayout.minimumLineSpacing = 10;** 

możemy również zmień inne atrybuty:

stickerFlowLayout.minimumInteritemSpacing = 5; 

Przy odstępach międzywymiarowych wpływających na spacje między elementami (simila r ale różni się od odstępu między wierszami)

Korzystając z układu przepływu, można zaoszczędzić na ogromnej ilości kodu i ustawić widok kolekcji programowo w jednym miejscu (samo ustawienie wstawki i odstępy między wierszami natychmiast zaoszczędziły dwóch dodatkowych niepotrzebne funkcje)

Powiązane problemy