anwenden Ich benutze insetForSectionAtIndex -Methode, um contentInset für einen Abschnitt in meiner Sammlungsansicht festlegen, und ich möchte diesen Einschub nicht auf eine Überschrift des Abschnitts anwenden. Ich brauche die Header-Breite so breit wie der Bildschirm.Wie man unterschiedliche contentIns nur für Inhalte Zellen, aber nicht für eine Überschrift in UICollectionView
ConentInset
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAtIndex section: Int) -> UIEdgeInsets {
if section == 1 {
return UIEdgeInsets(top: 0, left: 15, bottom: 0, right: 15)
}
return UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
}
Kopf
override func collectionView(collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, atIndexPath indexPath: NSIndexPath) -> UICollectionReusableView {
let header = collectionView.dequeueReusableSupplementaryViewOfKind(kind, withReuseIdentifier: opsMainDescriptionSegmentedControlCellId, forIndexPath: indexPath) as! MyHeader
return header
}
Wäre es möglich, die Kopfbreite nicht kürzer als UICollectionView, aber so breit wie der Bildschirm? – Bigair
Scheint, ich habe deine Frage falsch gelesen. Was Sie gerade tun, sollte funktionieren. Stellen Sie sicher, dass die Breite von UICollectionView auf die Breite der übergeordneten Ansicht eingestellt ist. – Tander
Wenn die Breite eines Headers breiter als CollectionView ist, protokolliert XCode eine Fehlermeldung. Die App stürzt nicht ab, aber die Breite der Kopfzeile wird auf die Breite der Sammlungsansicht geändert. – Bigair