Как создать ячейки с динамической шириной для представления коллекции композиционного макета.

Dec 05 2022
Во время создания композиционного макета нам нужно убедиться, что место 1 и место 2 имеют одинаковую предполагаемую размерность: И, конечно же, если у вас есть пользовательские ячейки, не забудьте добавить все подпредставления в его содержимоеView и настроить соответствующие ограничения. , если у вас есть какие-либо проблемы с чем-либо, упомянутым выше, не стесняйтесь оставлять комментарии ниже и спрашивать.

При создании композиционной схемы нам необходимо убедиться, что место 1 и место 2 имеют одинаковый расчетный размер:

func createLayout() -> UICollectionViewLayout {
        let itemSize = NSCollectionLayoutSize(widthDimension: /*1*/.estimated(100), heightDimension: .fractionalHeight(1))
        
        let item = NSCollectionLayoutItem(layoutSize: itemSize)
    
        let groupSize = NSCollectionLayoutSize(widthDimension: /*2*/.estimated(100), heightDimension: .fractionalHeight(1))
        
        let group = NSCollectionLayoutGroup.horizontal(layoutSize: groupSize, subitems: [item])

        let section = NSCollectionLayoutSection(group: group)
        
        section.orthogonalScrollingBehavior = .continuous
        
        section.interGroupSpacing = 15
        
        let layout = UICollectionViewCompositionalLayout(section: section)
        
        return layout
    }

И, конечно же, если у вас есть пользовательские ячейки, не забудьте добавить все подпредставления в его contentView и настроить правильные ограничения. Если у вас есть какие-либо проблемы с чем-либо, упомянутым выше, не стесняйтесь оставлять комментарии ниже и спрашивать.