Подтвердить что ты не робот

UICollectionView прокручивается при выборе ячейки

У меня возникают проблемы, когда я пытаюсь выбрать элемент внутри UICollectionView, поскольку, когда я нажимаю на него, он немного прокручивается.

Я знаю, что calledSelectItemAtIndexPath вызывается, но я хочу предотвратить прокрутку при выборе. Я просто хочу, чтобы просмотр коллекции просматривался, когда пользователь прокручивается, но если пользователь просто нажимает на ячейку, он не должен двигаться. Только нужно выбрать.

Надеюсь, вы сможете мне помочь, так как я не знаю, как предотвратить эту проблему.

Любая помощь будет действительно оценена.

4b9b3361

Ответ 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)