【发布时间】:2020-07-12 00:40:16
【问题描述】:
我有一个带有组合布局的集合视图,第 0 部分是启用分页的水平滚动视图(图片上的红色圆圈)。
所以我在集合视图上使用 collectionView.scrollToItem(at: indexPath, animated: true) 并使用 Timer 来自动滚动第 0 部分。但每当滚动发生时,它会自动关注第 0 部分。
有没有办法允许在第 0 部分自动滚动,但在用户可能浏览集合视图下方的项目时防止此部分获得焦点。目前,每当发生自动滚动时,它也会滚动到最顶部。
这是设置集合视图的组合布局的代码。第 0 部分可水平滚动。
let compLayout = UICollectionViewCompositionalLayout { (sectionNumer, env) -> NSCollectionLayoutSection? in
if sectionNumer == 0 {
let item = NSCollectionLayoutItem(layoutSize: .init(widthDimension: .fractionalWidth(1), heightDimension: .fractionalHeight(1)))
let group = NSCollectionLayoutGroup.horizontal(layoutSize: .init(widthDimension: .fractionalWidth(1), heightDimension: .estimated(280)), subitems: [item])
let section = NSCollectionLayoutSection(group: group)
section.orthogonalScrollingBehavior = .paging
return section
} else {
let item = NSCollectionLayoutItem(layoutSize: .init(widthDimension: .fractionalWidth(0.5), heightDimension: .absolute(200)))
item.contentInsets.trailing = 8
item.contentInsets.bottom = 8
let group = NSCollectionLayoutGroup.horizontal(layoutSize: .init(widthDimension: .fractionalWidth(1), heightDimension: .estimated(500)), subitems: [item])
group.contentInsets.leading = 8
let section = NSCollectionLayoutSection(group: group)
return section
}
}
抱歉,如果这已得到回答,但我没有找到它。感谢您提供任何帮助。
【问题讨论】:
-
遇到同样的问题,你找到解决办法了吗?检测顶部组是否可见不起作用,因为即使一半组可见 - 它会在顶部自动滚动
标签: ios swift uicollectionview