ScrollTo indexPath 在 Collection View Cell 内的 Collection View (Nested CollectionView)

Posted

技术标签:

【中文标题】ScrollTo indexPath 在 Collection View Cell 内的 Collection View (Nested CollectionView)【英文标题】:ScrollTo indexPath of a Collection View inside Collection view Cell (Nested CollectionView) 【发布时间】:2018-01-05 02:01:03 【问题描述】:

我在另一个集合视图单元格中使用集合视图。现在我想滚动到内部集合视图的 indexPath。如果你知道,请帮助我。

根据上图,我想将集合视图自动滚动到嵌套集合视图内的红色单元格。假设嵌套集合视图是 Main collectionView 中的一个部分。

【问题讨论】:

scrollToItem 可能是您想要的。 Scrolling to first cell 的可能重复项 scrollToItem 用于主集合视图。我想滚动到子集合视图索引路径 0,2 即上图中的红色单元格。 是不是不能引用内部集合视图的情况? 【参考方案1】:

尝试使用对此集合视图的引用。

假设你的 UICollectionView 包含内部 UICollectionView 被命名为 YourInnerCollectionViewCell,它看起来像:

let innerCollectionViewCellId = "innerCollectionViewCellId"

class MainCollectionView : UICollectionViewController 

    var innerCollectionViewCell: YourInnerCollectionViewCell?

    override func viewDidLoad() 
        super.viewDidLoad()

        collectionView?.delegate = self
        collectionView?.dataSource = self
    

    override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell 
        switch indexPath.row 
        case 2:
            let cell = collectionView.dequeueReusableCell(withReuseIdentifier: innerCollectionViewCellId, for: indexPath) as! YourInnerCollectionViewCell
            self.innerCollectionViewCell = cell
            return cell
        default:
            // return other cell
        
    

    ....



class YourInnerCollectionViewCell: UICollectionViewCell 

    override init(frame: CGRect)
        super.init(frame: frame)
    

    required init?(coder aDecoder: NSCoder) 
        fatalError("init(coder:) has not been implemented")
    

现在您有了对该单元格的引用,您可以访问其中的 collectionView 并执行 scrollTo。

希望对您有所帮助。

【讨论】:

以上是关于ScrollTo indexPath 在 Collection View Cell 内的 Collection View (Nested CollectionView)的主要内容,如果未能解决你的问题,请参考以下文章

UICollectionView 如何找到单元格最终所在的行

如何在 window.scrollTo() 之外滚动页面

window.scrollTo 在 iOS chrome 中不起作用

如何在 ionic2 中使用 content.scrollTo() 进行离子滚动?

如何使用 JQuery $.scrollTo() 函数滚动窗口

ListView 在 ScrollTo 时抛出 UnhandledException