【问题标题】:UICollectionViewCell containing a UICollectionViewUICollectionViewCell 包含一个 UICollectionView
【发布时间】:2017-08-29 12:23:29
【问题描述】:

我有一个 CollectionView,它的单元格本身也包含一个小 3 页的 CollectionView。

这样,用户可以在主视图中滚动,也可以左右滑动小单元格。

我的问题是我希望这些单元格的初始化方式是它们的 CollectionView 始终默认显示中心项目(项目 1)。

当主视图加载时,我这样做:

DispatchQueue.main.async {
    for cell in self.CollectionView.visibleCells {
        (cell as! PersonCell).CollectionView.scrollToItem(at: IndexPath(item: 1), at: [], animated: false)
    }
    self.CollectionView.alpha = 1
}


效果很好,但是当我向下滚动主 CollectionView 时,当然会初始化新单元格,并且它们都在自己的 CollectionView 中显示其项目 0。

对此有什么好的解决方案?
提前谢谢你!

【问题讨论】:

  • 也许在 init 方法中使用自定义滚动调用创建 UICollectionViewCell 的子类。
  • 我实际上已经使用了一个子类!我将发布我所做的以及似乎有效的答案作为答案。告诉我你的想法!
  • 不,不幸的是你的建议不起作用:/

标签: ios swift uicollectionview


【解决方案1】:

这似乎有效,但不确定是 100%“正确”还是始终有效:

func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
    (cell as? PersonCell)?.collectionView.scrollToItem(at: IndexPath(item: 1), at: [], animated: false)
}

【讨论】:

    猜你喜欢
    • 2012-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多