【问题标题】:How to prevent auto focus on collection view compositional layout swift如何防止自动聚焦在集合视图组合布局上
【发布时间】: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


【解决方案1】:

我想你是在问:你想每隔几秒钟显示一个不同的食物项目,但用户可能会在页面上往下看,所以当你尝试通过让集合视图滚动来显示不同的食物项目时到它,然后它一直向上滚动以显示下一个食物。对吗?

如果该部分不可见,我认为解决方案是禁用计时器。如果用户最近自己滚动了该部分,您还应该禁用计时器,以便计时器不会撤消用户刚才想要查看的内容。

【讨论】:

  • 谢谢!听起来很有希望
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-02
  • 2015-11-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多