为什么 Collection View 使用此代码加载中心轮播?
Why does Collection View load center carousel with this code?
我一直在想办法让我的 3 个单元格的集合视图加载第二个单元格,在查看 Whosebug 后我终于弄明白了。但是,我遇到的代码让我有点困惑。谁能解释为什么下面的代码可以使我的集合视图单元格(覆盖整个屏幕)从 3 个单元格中的第 2 个开始? (这是我一直想达到的效果,但我想更多地了解为什么这段代码能正常工作。
在这段代码中,有一个bool变量和一个if语句,为什么需要它们?当我取出boolean变量和if语句时,collection view无法滚动
这段代码是如何工作的?
谢谢。
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
}
}
1- scrollToItem
在 Docs
let indexToScrollTo = IndexPath(item: 1, section: 0)
self.collectionView.scrollToItem(at: indexToScrollTo, at: .left, animated: false)
使 collectionView 滚动到列表中的第二项
2-
When I took out the boolean variable and if statement, the collection view was unable to scroll
因为每个单元格显示都会调用 willDisplay
,所以当您滚动到第 3 个单元格时,调用 willdisplay
并导致 collectionView 转到第二个单元格,所以它会卡住一直在第二项中(这似乎没有滚动,但滚动发生了,你不会注意到它是立即发生的),所以需要布尔变量来使滚动动作发生一次,即滚动到指定索引
我一直在想办法让我的 3 个单元格的集合视图加载第二个单元格,在查看 Whosebug 后我终于弄明白了。但是,我遇到的代码让我有点困惑。谁能解释为什么下面的代码可以使我的集合视图单元格(覆盖整个屏幕)从 3 个单元格中的第 2 个开始? (这是我一直想达到的效果,但我想更多地了解为什么这段代码能正常工作。
在这段代码中,有一个bool变量和一个if语句,为什么需要它们?当我取出boolean变量和if语句时,collection view无法滚动
这段代码是如何工作的?
谢谢。
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
}
}
1- scrollToItem
在 Docs
let indexToScrollTo = IndexPath(item: 1, section: 0)
self.collectionView.scrollToItem(at: indexToScrollTo, at: .left, animated: false)
使 collectionView 滚动到列表中的第二项
2-
When I took out the boolean variable and if statement, the collection view was unable to scroll
因为每个单元格显示都会调用 willDisplay
,所以当您滚动到第 3 个单元格时,调用 willdisplay
并导致 collectionView 转到第二个单元格,所以它会卡住一直在第二项中(这似乎没有滚动,但滚动发生了,你不会注意到它是立即发生的),所以需要布尔变量来使滚动动作发生一次,即滚动到指定索引