2013-08-03 12 views
13

ho vista raccolta, sta lavorando bene, e ho regolato la separazione per l'X imbottitura,ios UICollectionView separazione su alto/basso tra cellule

e funziona bene, ma per l'imbottitura Y tra cellule , non sembra adattarsi alla separazione

Questo è il mio codice per il layout

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

enter image description here Così come posso impostare la separazione in alto/basso per 0px? Tra le celle ?,

grazie!

risposta

43

si vedrà solo il primo riempimento e la prima volta. E Per visualizzare il riempimento in basso y sono necessari più dati rispetto all'altezza del frame CollectionView. Quando scorri verso l'alto la vista della collezione vedrai il riquadro in basso a sinistra.

Ho usato CollectionView come questo

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

Quando ho creato

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

L'uscita verrà come prima volta ..

enter image description here

Quando si è scorso fino collecti OnView vedrete imbottitura fondo ..

enter image description here

Usare questo per interlinea verticle tra le celle

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

sarà simile

enter image description here

+0

ciao grazie, errore che non ho spiegato correttamente, è la separazione tra le celle in alto, in basso, che significa, non c'è spazio su y tra le celle, ho modificato la mia domanda e ho votato grazie – MaKo

+0

controllo modificato rispondi, passa 0 invece di 5 non ti lascerà spazio verticale tra le celle. – Warewolf

5

Si può anche fare un molto più semplice usando il layout del flusso di visualizzazione della collezione.

Impostare il layout di flusso (ricordarsi di aggiungere il delegato nell'intestazione):

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 

Come potete vedere siamo in grado di impostare facilmente l'interlinea utilizzando:

**stickerFlowLayout.minimumLineSpacing = 10;** 

Possiamo anche modificare gli altri attributi

stickerFlowLayout.minimumInteritemSpacing = 5; 

Con la spaziatura intermit che interessa gli spazi tra gli elementi (simila r ma diversa dalla spaziatura di linea)

Utilizzando il layout del flusso è possibile salvare su un'enorme quantità di codice e impostare la visualizzazione della raccolta su tutto in un unico punto (è sufficiente impostare l'intervallo e l'interlinea per risparmiare immediatamente due extra funzioni non necessarie)

Problemi correlati