2016-02-26 23 views
9

Voglio ridurre la dimensione tra le celle in fila. Ora sembra:Come modificare lo spazio tra le celle in UICollectionView?

enter image description here

sto cercando questo, per ridurre le dimensioni tra loro:

let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout() 
layout.sectionInset = UIEdgeInsets(top: 20, left: 2, bottom: 10, right: 2) 
layout.minimumInteritemSpacing = 0 
layout.minimumLineSpacing = 0 

ma non mi aiuta. Cosa faccio di sbagliato?

+1

@patchdiaz non è un duplicato! Ho provato questa versione, ma non funziona. Ecco perché ho creato questa domanda –

+0

Hai ragione! Cancellato;) – fdiaz

+0

Vuoi che le tue celle siano allineate a sinistra, cioè avrai un sacco di spazio vuoto sulla destra? –

risposta

17
//Objective c 
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { 
     return CGSizeMake((collectionView.frame.size.width/3)-20, 100); 
    } 

// Swift 2.0 

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { 
    return CGSizeMake((collectionView.frame.size.width/3) - 20, 100) 
} 

// Swift 3.0 
override func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 
    return CGSize(width: CGFloat((collectionView.frame.size.width/3) - 20), height: CGFloat(100)) 
} 
+2

@ZacharyGover puoi eseguire il backup di questa "rivendicazione" con un fonte credibile? La maggior parte dei moduli di Apples sono ancora scritti in Objective-C, ed è ancora ampiamente usato oggi. – JAL

+0

non penso che Objective-C stia diventando obsoleto. Ancora veloce nella faccia di sviluppo. In qualche posto ancora Obj-C meglio di Swift. Le Lib sviluppate in obj-c sono usate in modo rapido usando i ponti ...... !!!! Spero che tu lo sappia ... !! :) –

+0

Sai che ho detto di diventare obsoleto? Sì, alcune cose sono ancora scritte intorno a Objective-C, anche se, mentre Apple aggiorna Swift, stanno riscrivendo tutto. Anche se ciò significa che la maggior parte degli sviluppatori sta scrivendo in Swift. Il mio punto principale che stavo cercando di trasmettere è quello di fornire entrambe le risposte, come ora avete fatto. Perché presto sarà obsoleto e le persone in futuro non saranno in grado di capirlo se sono nuove alla programmazione, quando guardano questo post per chiedere aiuto. – Zach

9

Vai allo storyboard, fate clic destro su vista raccolta e enter image description here

e controllare la distanza minima tra la cella e ridurlo a zero.

+2

L'ho già fatto. Non ha aiutato –

+0

Ora il problema può essere nella cella UIcollectionview ..... controlla i vincoli nella cella UICollectionview ...... non ci dovrebbe essere alcuna volta di padding, resto ho bisogno di passare attraverso il tuo codice –

+1

In story board lì sono due sezioni una è collectionview e sotto collectionview c'è il layout del flusso della collezioneview ... hai controllato la spaziatura minima in entrambi? –

0

Se si crea CollectionView In StoryBoard o Xib, Vai StoryBoard o Xib e impostare questi valori da

enter image description here

+0

Puoi dare qualche esempio di codice su come ottenere questo? \ – pczeus

+0

no, non l'ho impostato da XIB. Su XIB ho appena impostato la cella di visualizzazione collezione –

3

sul vostro codice, è necessario creare un IBOutlet alla visualizzazione raccolta, e quindi assegnare la collectionViewLayout come tale:

let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout() 
layout.sectionInset = UIEdgeInsets(top: 20, left: 2, bottom: 10, right: 2) 
layout.minimumInteritemSpacing = 0 
layout.minimumLineSpacing = 0 
collectionView!.collectionViewLayout = layout 
+0

Sei il mio eroe. – BEm

1

sua semplice

let layout = contactsCollectionView.collectionViewLayout as? UICollectionViewFlowLayout 
layout?.minimumLineSpacing = 8 
Problemi correlati