UICollectionView прокручивается при выборе ячейки
У меня возникают проблемы, когда я пытаюсь выбрать элемент внутри UICollectionView, поскольку, когда я нажимаю на него, он немного прокручивается.
Я знаю, что calledSelectItemAtIndexPath вызывается, но я хочу предотвратить прокрутку при выборе. Я просто хочу, чтобы просмотр коллекции просматривался, когда пользователь прокручивается, но если пользователь просто нажимает на ячейку, он не должен двигаться. Только нужно выбрать.
Надеюсь, вы сможете мне помочь, так как я не знаю, как предотвратить эту проблему.
Любая помощь будет действительно оценена.
Ответы
Ответ 1
Если вы программно выбираете ячейку с помощью collectionview.selectItem(at: indexpath, animated: true, scrollPosition: .top)
- и поскольку вы не делились с нами никаким кодом, допустим, что это правильно...
... тогда, как и я, вы, возможно, не поняли, что можете использовать пустой набор следующим образом: collectionview.selectItem(at: indexpath, animated: true, scrollPosition: [])
Ответ 2
Это может произойти, если у вас включен пейджинг, а CollectionView вручную прокручивается до позиции, которая не совпадает с ожидаемыми границами страниц. Когда вы выбираете ячейку, она настраивается, чтобы установить CollectionView на правильные границы страницы.
Ответ 3
Вы можете попробовать следующее:
collectionView.selectItem(at: newIdexPath, animated: true, scrollPosition: UICollectionViewScrollPosition(rawValue: 0))
Ответ 4
Свифт 5
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
collectionView.scrollToItem(at: indexPath, at: .centeredHorizontally, animated: true)
}
Ответ 5
Для Objective-C
[self.collectionView selectItemAtIndexPath:path animated:NO scrollPosition:UICollectionViewScrollPositionNone]
Для Swift
collectionview.selectItemAtIndexPath(indexPath: path, animated: false, scrollPosition: None)