当我尝试在UICollectionView中选择一个项目时,我遇到了麻烦,因为当我点击它时它会滚动一点点 .
我知道didSelectItemAtIndexPath正在调用,但我想在选择时阻止滚动 . 我只希望在用户滚动时滚动集合视图,但如果用户只是点击单元格则不应移动 . 只应该选择 .
我希望你能帮助我,因为我不知道如何防止这个问题 .
任何帮助将非常感激 .
如果您使用 collectionview.selectItem(at: indexpath, animated: true, scrollPosition: .top) 以编程方式选择单元格 - 并且因为您没有't share any of your code with us, let' s假设这是正确的...
collectionview.selectItem(at: indexpath, animated: true, scrollPosition: .top)
...然后像我一样你可能没有意识到你可以使用这样的空集: collectionview.selectItem(at: indexpath, animated: true, scrollPosition: [])
collectionview.selectItem(at: indexpath, animated: true, scrollPosition: [])
如果您启用了分页并且CollectionView被手动滚动到与预期页面边界不对齐的位置,则会发生这种情况 . 选择单元格时,它会调整以将CollectionView置于正确的页面边界 .
你可以试试这个:
collectionView.selectItem(at: newIdexPath, animated: true, scrollPosition: UICollectionViewScrollPosition(rawValue: 0))
For Objective-C
[self.collectionView selectItemAtIndexPath:path animated:NO scrollPosition:UICollectionViewScrollPositionNone]
For Swift
collectionview.selectItemAtIndexPath(indexPath: path, animated: false, scrollPosition: None)
4 回答
如果您使用
collectionview.selectItem(at: indexpath, animated: true, scrollPosition: .top)
以编程方式选择单元格 - 并且因为您没有't share any of your code with us, let' s假设这是正确的......然后像我一样你可能没有意识到你可以使用这样的空集:
collectionview.selectItem(at: indexpath, animated: true, scrollPosition: [])
如果您启用了分页并且CollectionView被手动滚动到与预期页面边界不对齐的位置,则会发生这种情况 . 选择单元格时,它会调整以将CollectionView置于正确的页面边界 .
你可以试试这个:
For Objective-C
For Swift