UICollectionView cellForItem调用不正确

Cru*_*ruz 0 ios uicollectionview swift2 swift3

将Swift 2.2迁移到Swift 3之后的Xcode 8.2.1

UICollectionView的cellForItem未正确调用但在迁移之前工作正常

我有CollectionView与水平UICollectionViewFlowLayout并设置分页设置为true

UIViewController的视图框架与UICollectionView的框架相同,也是像网页应用程序一样的单元框架(全尺寸)

cellForItem当我向右滚动UICollectionView时,我在(UICollectionViewDataSource func)中打印indexPath.row

indexPath.row打印如下

0, 3, 4, 5, 6, 7, 8, 9, 10

然后在最后打印时滚动到相反的方向 10

下一个indexPath 7但它应该是9因为最后调用的索引是10

并滚动直到第一个单元格显示

6, 5, 4, 3, 2, 1, 0 印刷的

为什么会出现这种情况?

在迁移之前的Swift 2.2中,工作正常

在Swift 3或iOS 10之后是否有更改为UICollectionView或UICollectionViewFlowLayout?

Cru*_*ruz 6

从Swift 2.2迁移到Swift 3之后

UICollectionView在iOS10中预取设置为true(默认情况下)

所以cellForItem不被称为线性序列

我在这篇文章中得到了一些暗示可可

预取是针对数据源而不是针对单元格

所以有些人不会线性调用cellForItem(这是针对单元格)(我想要的是什么)

只需取消选中预取功能就可以像迁移前一样正常工作

在此输入图像描述