2017-01-03 9 views
0

Ich habe eine UICollectionView, die horizontal scrollt und ich möchte eine Zelle auf dem Bildschirm zu einer Zeit sichtbar haben.Swift 3 - UICollectionView Center Zelle mit Padding

Ich gründe programmatisch die Zellenbreite und -höhe in folgenden Methode:

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath as IndexPath) as! Cell 

    let width = collectionView.bounds.size.width - 40 
    let height = collectionView.bounds.size.height - 40 

    cell.bounds.size = CGSize(width: CGFloat(width), height: CGFloat(height)) 

    return cell 
} 

Und nach, um herauszufinden, zu kämpfen, wie mit Einsätzen zu arbeiten, Abstand Abschnitt -einsätze (sowohl programmatisch und in den Inspektoren in XCode) Ich kann nicht herausfinden, was ich einstellen muss und wo ich es einstellen muss. Hier

ist ein Diagramm meiner gewünschten Abstand: enter image description here

Antwort

1
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: IndexPath) -> CGSize { 
    return CGSize(width: UIScreen.main.bounds.width - 40, height: yourCollectionViewHeight - 40) 
} 

20 nach links - addieren Footer Size und Header Size in der Storyboard mit width = 20

Abstand zwischen den Zellen - add Minimum Spacing in der Storyboard = 40

enter image description here

Ich hätte einige Fehler machen können und Sie werden nicht genau Ihr Layout bekommen, aber ich hoffe, Sie würden die Idee bekommen.

Verwandte Themen