我目前有一个使用UICollectionView
的{{1}}。我想在滚动/滚动停止时为当前可见单元格内的一些视图设置动画。
不幸的是,似乎在某个节上将UICollectionViewCompositionalLayout
设置为除orthogonalScrollingBehavior
以外的任何值,这劫持了.none
附带的UICollectionView
委托方法。
想知道目前是否有任何解决方法吗? 要获取分页行为和UIScrollView
委托吗?
设置布局
UIScrollView
UICollectionViewDelegate
enum Section {
case main
}
override func awakeFromNib() {
super.awakeFromNib()
collectionView.collectionViewLayout = createLayout()
collectionView.delegate = self
}
func configure() {
snapshot.appendSections([.main])
snapshot.appendItems(Array(0..<10))
dataSource.apply(snapshot,animatingDifferences: false)
}
private func createLayout() -> UICollectionViewLayout {
let leadingItem = NSCollectionLayoutItem(
layoutSize: NSCollectionLayoutSize(
widthDimension: .fractionalWidth(1.0),heightDimension: .fractionalHeight(1.0))
)
leadingItem.contentInsets = .zero
let containerGroup = NSCollectionLayoutGroup.horizontal(
layoutSize: NSCollectionLayoutSize(
widthDimension: .fractionalWidth(1.0),heightDimension: .fractionalHeight(1.0)
),subitems: [leadingItem])
let section = NSCollectionLayoutSection(group: containerGroup)
section.orthogonalScrollingBehavior = .groupPaging // WOULD LIKE PAGING & UISCROLLVIEW TO ALSO BE FIRED
let config = UICollectionViewCompositionalLayoutConfiguration()
config.scrollDirection = .horizontal
let layout = UICollectionViewCompositionalLayout(section: section,configuration: config)
return layout
}