Je veux ajouter un peu d'espacement entre mon en-tête et les éléments réels, qui ressemblent actuellement à ceci:
func collectionView(collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, atIndexPath indexPath: NSIndexPath) -> UICollectionReusableView {
// Create header
switch kind{
case UICollectionElementKindSectionHeader:
let headerView = iconCollectionView.dequeueReusableSupplementaryViewOfKind(kind, withReuseIdentifier: "customIconHeaderView", forIndexPath: indexPath) as! CustonIconHeaderView
headerView.setUp() //add whatever into the view
return headerView
default:
assert(false, "Unexpected element kind")
}
}
En gros, vous parlez d’ajouter une marge supérieure à la section de la vue collection, pour cela vous définiriez encart supérieur pour la section. Pour le faire dans le code, implémentez insetForSectionAtIndex
:
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAtIndex section: Int) -> UIEdgeInsets {
return UIEdgeInsets(top: 10.0, left: 1.0, bottom: 1.0, right: 1.0)
}
Si vous ne souhaitez pas implémenter la insetForSectionAtIndex
, vous pouvez également faire quelque chose comme ceci avec une méthode appropriée, par exemple. viewDidLoad
:
let layout = collectionView.collectionViewLayout as! UICollectionViewFlowLayout
layout.sectionInset = UIEdgeInsets(top: 10.0, left: 1.0, bottom: 1.0, right: 1.0)
Dans Interface Builder, sélectionnez la vue de collection et modifiez la valeur de Supports de section -> Haut comme indiqué dans l'image ci-dessous:
NOTE: Ceci ne fonctionne que si vous utilisez Flow Layout.