我正在开发一个想要实现此功能的项目:当用户滑动 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
根据用户的操作进行更新。我希望它也能更新布局。我正在使用斯威夫特。
任何帮助将不胜感激!