1

我正在开发一个想要实现此功能的项目:当用户滑动 aUISlider时,collectionView 会动态添加/减少列数,例如在 Google 文档中添加/删除列。

我试图寻找解决方案,有些人建议使用invalidateLayout(). 我将此方法添加到操作中,UISlider但 collectionView 没有更新布局。

这是我创建布局的代码:

func createLayout() -> UICollectionViewLayout {
    let itemSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1/CGFloat(numberOfColumns)), heightDimension: .fractionalHeight(1.0))
    let item = NSCollectionLayoutItem(layoutSize: itemSize)
    item.contentInsets = NSDirectionalEdgeInsets(top: inset, leading: inset, bottom: inset, trailing: inset)
    let groupSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1.0), heightDimension: .fractionalWidth(1/CGFloat(numberOfColumns)))
    let group = NSCollectionLayoutGroup.horizontal(layoutSize: groupSize, subitem: item, count: numberOfColumns)
    
    let section = NSCollectionLayoutSection(group: group)
    return UICollectionViewCompositionalLayout(section: section)
}

numberOfColumns根据用户的操作进行更新。我希望它也能更新布局。我正在使用斯威夫特。

任何帮助将不胜感激!

在 Google 文档中添加/删除列

4

0 回答 0