Понимание различных способов создания NSCollectionLayoutGroup для UICollectionViewCompositionalLayout - PullRequest
0 голосов
/ 31 января 2020

Я пытаюсь создать очень простой c макет вида коллекции, используя UICollectionViewCompositionalLayout, который отображает ячейки моего вида коллекции в виде 3 квадратов, выровненных по горизонтали, как показано ниже: enter image description here

Но мне трудно понять разницу между двумя способами создания 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])

Однако только первый вариант приводит к желаемому макету. Второй вариант приводит к тому, что один элемент растягивается на всю ширину вида (представьте первое изображение с одним длинным прямоугольником вместо трех отдельных квадратов)

Но я не совсем понимаю разница между этими двумя методами, и я чувствую, что они должны привести к одному и тому же макету

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...