Я пытаюсь создать очень простой c макет вида коллекции, используя UICollectionViewCompositionalLayout
, который отображает ячейки моего вида коллекции в виде 3 квадратов, выровненных по горизонтали, как показано ниже:
Но мне трудно понять разницу между двумя способами создания NSCollectionLayoutGroup
NSCollectionLayoutItem
, используемый в группе, очень прост и определяется следующим образом:
let tripletItem = NSCollectionLayoutItem(layoutSize: NSCollectionLayoutSize(
widthDimension: .fractionalWidth(1),
heightDimension: .fractionalHeight(1))
)
На мой взгляд, есть два разных способа создания NSCollectionLayoutGroup
для этого макета.
Первый:
let tripletGroup = NSCollectionLayoutGroup.horizontal(layoutSize: NSCollectionLayoutSize(
widthDimension: .fractionalWidth(1),
heightDimension: .fractionalWidth(1/3)
), subitem: tripletItem, count: 3)
Второй:
let tripletGroup = NSCollectionLayoutGroup.horizontal(layoutSize: NSCollectionLayoutSize(
widthDimension: .fractionalWidth(1),
heightDimension: .fractionalWidth(1/3)
), subitems: [tripletItem, tripletItem, tripletItem])
Однако только первый вариант приводит к желаемому макету. Второй вариант приводит к тому, что один элемент растягивается на всю ширину вида (представьте первое изображение с одним длинным прямоугольником вместо трех отдельных квадратов)
Но я не совсем понимаю разница между этими двумя методами, и я чувствую, что они должны привести к одному и тому же макету