2013-08-03 6 views
13

I eine Sammlung Ansicht haben, funktioniert gut, und ich habe die Trennung für das X-padding eingestellt,ios UICollectionView Trennung auf oben/unten zwischen Zellen

und es funktioniert gut, aber für das Y-padding zwischen Zellen , scheint nicht zu keiner Trennung

Dies ist mein Code für das Layout

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

enter image description here So einstellen, wie kann ich die Trennung oben/unten auf 0px? Zwischen Zellen ?,

danke!

Antwort

43

Sie sehen nur top y Polsterung zum ersten Mal. Und für die Anzeige des unteren Y-Padding benötigen Sie mehr Daten als die CollectionView-Rahmenhöhe. Wenn Sie in der Sammlungsansicht nach oben scrollen, sehen Sie das untere Padding.

Ich benutzen Kollektion wie dieses

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

Als ich

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

Der Ausgang als erstes Mal .. kommt

enter image description here

Wenn Sie nach oben gescrollt Collecti OnView Sie werden sehen, unten padding ..

enter image description here

verwenden für verticle Zeilenabstand zwischen den Zellen

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

aussehen wie

enter image description here

+0

hallo dank, mein Fehler, den ich nicht richtig erklären habe, ist die Trennung zwischen den Zellen auf oben, unten, das heißt, keinen Speicherplatz auf y zwischen den Zellen, ich meine Frage bearbeitet und auf stimmten Sie dank – MaKo

+0

Check bearbeitet Antwort, Pass 0 statt 5 lässt Sie keinen vertikalen Abstand zwischen den Zellen haben. – Warewolf

5

können Sie tun es auch viel einfacher, wenn Sie das Layout der Sammlungsansicht verwenden.

den Fluss Layout einrichten (Sie erinnern sich die Delegierten in der Kopfzeile hinzugefügt werden):

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 

Wie Sie können wir leicht die Linie mit Abstand gesetzt sehen:

auch
**stickerFlowLayout.minimumLineSpacing = 10;** 

Wir können Ändern Sie die anderen Attribute

stickerFlowLayout.minimumInteritemSpacing = 5; 

Mit dem Interitem Abstand Auswirkungen auf die Räume zwischen den Elementen (Simila r) aber anders als der Zeilenabstand)

Mit dem Flusslayout können Sie eine große Menge Code speichern und Ihre Kollektionsansicht programmatisch an einem Ort einstellen (nur das Setzen des Zeilenabstandes hat mir sofort zwei zusätzliche gespart) nicht benötigten Funktionen)

Verwandte Themen