scrollToItemAtIndexPath之后的UICollectionView水平滚动:

时间:2015-01-10 21:51:40

标签: ios objective-c uicollectionview

我有一个图像数组,显示在一个类似于Instagrams个人资料页面的collectionView中。选择图像后,indexPath.row将传递给下一个使用相同数组的集合视图,并传递indexPath.row以了解要在整个屏幕上显示的图像。

- (void)viewDidLayoutSubviews{
[self.view layoutIfNeeded];

NSIndexPath *indexPath = [NSIndexPath indexPathForItem:self.selectedImage inSection:0];
[self.collectionView scrollToItemAtIndexPath:indexPath atScrollPosition:UICollectionViewScrollPositionCenteredHorizontally animated:NO];

}

图像出现但我无法在其余图像之间水平滚动。启用了分页,每个单元格都足够大,可以占用屏幕。如果我注释掉上面的代码,我可以滚动浏览所有图像。因此,当你选择一个人的形象,并且能够滚动其余部分而不是x并且单独选择每个人时,Twitter的功能如何

1 个答案:

答案 0 :(得分:2)

我相信只要重复使用集合视图单元格,就会调用viewDidLayoutSubviews。因此,当它尝试重用单元格时,它会运行强制它滚动回该项目的代码,这意味着滚动视图永远不会移动:)我认为您需要确保滚动到该项目只会被调用一次。

要测试这个...尝试在上面的代码中放入一个断点,看看当你尝试水平滚动时是否再次调用它。