Как мы узнаем конкретный элемент в методе cellForRow, когда используется композиционный макет? ⇐ IOS
-
Гость
Как мы узнаем конкретный элемент в методе cellForRow, когда используется композиционный макет?
Я создал представление коллекции с композиционным макетом. Ниже приведен код, который я использовал для создания макета.
func getCompositionalLayout() -> UICollectionViewCompositionalLayout { let item = NSCollectionLayoutItem(layoutSize: NSCollectionLayoutSize(widthDimension: .fractionalWidth(1), heightDimension: .fractionalHeight(1/3))) item.contentInsets = NSDirectionalEdgeInsets(верх: 1, впереди: 1, внизу: 1, в конце: 1) //--------- Группа 1 ---------// let group1Item1 = NSCollectionLayoutItem (layoutSize: NSCollectionLayoutSize (widthDimension: .fractionalWidth(1/2), heightDimension: .fractionalHeight(1))) group1Item1.contentInsets = NSDirectionalEdgeInsets (верхнее: 1, ведущее: 1, нижнее: 1, завершающее: 1) letnestedGroup1Item1 = NSCollectionLayoutItem(layoutSize: NSCollectionLayoutSize(widthDimension: .fractionalWidth(1), heightDimension: .fractionalHeight(1/2))) nestedGroup1Item1.contentInsets = NSDirectionalEdgeInsets(верх: 1, впереди: 1, внизу: 1, в конце: 1) letnestedGroup2Item1 = NSCollectionLayoutItem(layoutSize: NSCollectionLayoutSize(widthDimension: .fractionalWidth(1/2), heightDimension: .fractionalHeight(1))) nestedGroup2Item1.contentInsets = NSDirectionalEdgeInsets (сверху: 1, впереди: 1, внизу: 1, в конце: 1) letnestedGroup2 = NSCollectionLayoutGroup.horizontal(layoutSize: NSCollectionLayoutSize(widthDimension: .fractionalWidth(1), heightDimension: .fractionalHeight(1/2)), подэлементы: [nestedGroup2Item1]) letnestedGroup1 = NSCollectionLayoutGroup.vertical(layoutSize: NSCollectionLayoutSize(widthDimension: .fractionalWidth(1/2), heightDimension: .fractionalHeight(1)), подэлементы: [nestedGroup1Item1,nestedGroup2]) let group1 = NSCollectionLayoutGroup.horizontal(layoutSize: NSCollectionLayoutSize(widthDimension: .fractionalWidth(1), heightDimension: .fractionalHeight(1/3)), подэлементы: [group1Item1,nestedGroup1]) //--------- Группа 2 ---------// let group2Item1 = NSCollectionLayoutItem (layoutSize: NSCollectionLayoutSize (widthDimension: .fractionalWidth(1/3), heightDimension: .fractionalHeight(1))) group2Item1.contentInsets = NSDirectionalEdgeInsets (верхнее: 1, ведущее: 1, нижнее: 1, завершающее: 1) let group2 = NSCollectionLayoutGroup.horizontal(layoutSize: NSCollectionLayoutSize(widthDimension: .fractionalWidth(1), heightDimension: .fractionalHeight(1/3)), подэлементы: [group2Item1]) //--------- Группа контейнеров ---------// letContainerGroup = NSCollectionLayoutGroup.vertical(layoutSize: NSCollectionLayoutSize(widthDimension: .fractionalWidth(1), heightDimension: .absolute(600)), подэлементы: [item, group1, group2]) пусть раздел = NSCollectionLayoutSection (группа: контейнерная группа) пусть макет = UICollectionViewCompositionalLayout (раздел: раздел) возвратный макет } с этим блоком кода представление моей коллекции выглядит так
введите здесь описание изображения
Теперь мой вопрос: как мне узнать RED CELL каждый раз, когда он встречается в методе cellForItem, чтобы я мог показывать в нем различное содержимое. (так же, как Instagram показывает видео в ячейке большего размера на странице поиска).
Не могу идентифицировать красную ячейку (она находится в группе 1 с именем group1Item1)
Я создал представление коллекции с композиционным макетом. Ниже приведен код, который я использовал для создания макета.
func getCompositionalLayout() -> UICollectionViewCompositionalLayout { let item = NSCollectionLayoutItem(layoutSize: NSCollectionLayoutSize(widthDimension: .fractionalWidth(1), heightDimension: .fractionalHeight(1/3))) item.contentInsets = NSDirectionalEdgeInsets(верх: 1, впереди: 1, внизу: 1, в конце: 1) //--------- Группа 1 ---------// let group1Item1 = NSCollectionLayoutItem (layoutSize: NSCollectionLayoutSize (widthDimension: .fractionalWidth(1/2), heightDimension: .fractionalHeight(1))) group1Item1.contentInsets = NSDirectionalEdgeInsets (верхнее: 1, ведущее: 1, нижнее: 1, завершающее: 1) letnestedGroup1Item1 = NSCollectionLayoutItem(layoutSize: NSCollectionLayoutSize(widthDimension: .fractionalWidth(1), heightDimension: .fractionalHeight(1/2))) nestedGroup1Item1.contentInsets = NSDirectionalEdgeInsets(верх: 1, впереди: 1, внизу: 1, в конце: 1) letnestedGroup2Item1 = NSCollectionLayoutItem(layoutSize: NSCollectionLayoutSize(widthDimension: .fractionalWidth(1/2), heightDimension: .fractionalHeight(1))) nestedGroup2Item1.contentInsets = NSDirectionalEdgeInsets (сверху: 1, впереди: 1, внизу: 1, в конце: 1) letnestedGroup2 = NSCollectionLayoutGroup.horizontal(layoutSize: NSCollectionLayoutSize(widthDimension: .fractionalWidth(1), heightDimension: .fractionalHeight(1/2)), подэлементы: [nestedGroup2Item1]) letnestedGroup1 = NSCollectionLayoutGroup.vertical(layoutSize: NSCollectionLayoutSize(widthDimension: .fractionalWidth(1/2), heightDimension: .fractionalHeight(1)), подэлементы: [nestedGroup1Item1,nestedGroup2]) let group1 = NSCollectionLayoutGroup.horizontal(layoutSize: NSCollectionLayoutSize(widthDimension: .fractionalWidth(1), heightDimension: .fractionalHeight(1/3)), подэлементы: [group1Item1,nestedGroup1]) //--------- Группа 2 ---------// let group2Item1 = NSCollectionLayoutItem (layoutSize: NSCollectionLayoutSize (widthDimension: .fractionalWidth(1/3), heightDimension: .fractionalHeight(1))) group2Item1.contentInsets = NSDirectionalEdgeInsets (верхнее: 1, ведущее: 1, нижнее: 1, завершающее: 1) let group2 = NSCollectionLayoutGroup.horizontal(layoutSize: NSCollectionLayoutSize(widthDimension: .fractionalWidth(1), heightDimension: .fractionalHeight(1/3)), подэлементы: [group2Item1]) //--------- Группа контейнеров ---------// letContainerGroup = NSCollectionLayoutGroup.vertical(layoutSize: NSCollectionLayoutSize(widthDimension: .fractionalWidth(1), heightDimension: .absolute(600)), подэлементы: [item, group1, group2]) пусть раздел = NSCollectionLayoutSection (группа: контейнерная группа) пусть макет = UICollectionViewCompositionalLayout (раздел: раздел) возвратный макет } с этим блоком кода представление моей коллекции выглядит так
введите здесь описание изображения
Теперь мой вопрос: как мне узнать RED CELL каждый раз, когда он встречается в методе cellForItem, чтобы я мог показывать в нем различное содержимое. (так же, как Instagram показывает видео в ячейке большего размера на странице поиска).
Не могу идентифицировать красную ячейку (она находится в группе 1 с именем group1Item1)
Мобильная версия