为什么Collection View使用此代码加载中心轮播?

问题描述 投票:1回答:1

我一直试图弄清楚如何使用第二个单元格加载3个单元格的集合视图,最后我通过StackOverFlow查看了它。但是,我遇到的代码对我来说有点混乱。有没有人能够解释为什么下面的代码在使我的集合视图单元格(覆盖整个屏幕)从3个单元格中的第2个开始? (这是我一直希望实现的效果,但我想更多地了解这个代码为什么能够正常工作。

在这段代码中,有一个bool变量和一个if语句,为什么需要它们呢?当我取出boolean变量和if语句时,集合视图无法滚动。

这段代码如何正常工作?

谢谢。

var onceOnly = false

internal override func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
    if !onceOnly {
        let indexToScrollTo = IndexPath(item: 1, section: 0)
        self.collectionView.scrollToItem(at: indexToScrollTo, at: .left, animated: false)
        onceOnly = true
    }
}
ios swift xcode scroll collectionview
1个回答
0
投票

1-这在scrollToItemDocs

let indexToScrollTo = IndexPath(item: 1, section: 0)
self.collectionView.scrollToItem(at: indexToScrollTo, at: .left, animated: false)

使collectionView滚动到列表中的第二个项目

2-

当我取出boolean变量和if语句时,集合视图无法滚动

因为willDisplay是为每个单元格显示调用的,所以当你滚动到第三个单元格时调用willdisplay会导致collectionView转到第二个单元格,所以它会一直卡在第二个单元格中(这似乎没有滚动,但滚动发生,你不会注意到,因为它立即发生),所以布尔值var需要使滚动动作发生一次滚动到指定的索引

© www.soinside.com 2019 - 2024. All rights reserved.