2015-12-04 3 views
3

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

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

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

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

+0

Вы хотите поделиться своим кодом? – BHUMICA

ответ

3

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

+0

Привет @CodeSmith, это помогло мне 2 года спустя, но я хочу сохранить поведение подкачки на моем scrollView. Удалось ли вам обойтись? –

+0

Я думаю, что мое исправление заключалось в реализации пользовательского UICollectionViewLayout и правильном выборе размера страницы на экране. На страницах было несколько пикселей, а макет исправил проблемы с размером. – CodeSmith

-3

для Objective-C

[self.collectionView selectItemAtIndexPath:path animated:NO scrollPosition:UICollectionViewScrollPositionNone] 

Для Swift

collectionview.selectItemAtIndexPath(indexPath: path, animated: false, scrollPosition: None) 
0

Вы можете попробовать это:

collectionView.selectItem(at: newIdexPath, animated: true, scrollPosition: UICollectionViewScrollPosition(rawValue: 0)) 
16

Если вы выбираете ячейку программно с collectionview.selectItem(at: indexpath, animated: true, scrollPosition: .top) - и так как вы не делились с нами никаким кодом, допустим, что это правильно ...

... тогда, как и я, вы, возможно, не поняли, что можете использовать пустой набор следующим образом: collectionview.selectItem(at: indexpath, animated: true, scrollPosition: [])