2016-08-27 1 views
1

Целью является определение расстояния между разделами для UICollectionView.Настройка минимальной линии для UICollectionViewFlowLayout не имеет эффекта, должна использовать функцию insetForSectionAtIndex?

Однако, устанавливая UICollectionViewFlowLayout следующим образом с minimumLineSpacing свойством, не имеет никакого эффекта:

// Init <collectionView> 
    collectionView.alwaysBounceVertical = true 
    collectionView.contentInset = UIEdgeInsets(top: CollectionViewTopPadding, left: 0, bottom: CollectionViewBottomPadding, right: 0) 
    let flowLayout = collectionView.collectionViewLayout as! UICollectionViewFlowLayout 
    flowLayout.minimumLineSpacing = 5 

Единственный подход, который работает заключается в использовании insetForSectionAtIndex следующим образом:

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAtIndex section: Int) -> UIEdgeInsets { 
    return UIEdgeInsets(top: 5, left: 0, bottom: 0, right: 0) 
} 

Другие примеры на SO set minimumLineSpacing, так может кто-нибудь объяснить, почему этот код не работает?

ответ

1

Согласно Apple, документации

Схема потока использует значение minimumLineSpacing собственности, чтобы установить интервал между строками в разделе.

Таким образом, он не будет устанавливать интервалы между разделами, это означает, что пространство между строками/столбцами внутри раздела. Если вы хотите достичь промежутка между разделами без применения метода делегирования, вы можете использовать свойство sectionInsetUICollectionViewFlowLayout.

+0

Ahh интересно, еще одно напоминание для чтения источника документации вместо того, что вы видите на SO – Crashalot

0

Incase кто-то интересно, как сделать это только для одной секции:

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets { 

    if section == 0{ 

     return UIEdgeInsetsMake(0, 0, 10, 0) 
    } 

    return UIEdgeInsetsMake(0, 0, 0, 0) 
} 
Смежные вопросы