UICollectionView: ScrollToItem в центре ячейки не работает в горизонтальном представлении коллекции - PullRequest
0 голосов
/ 08 мая 2018

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

let cvOffset = (UIScreen.main.bounds.width - tileSize) / 2
collectionView.contentInset = UIEdgeInsets(top: 0, left: cvOffset, bottom: 0, right: cvOffset)
collectionView.scrollIndicatorInsets = UIEdgeInsets(top: 0, left: cvOffset, bottom: 0, right: cvOffset)

Однако, когда я использую метод scrollToItem, он работает только для правой половины элементов. Если я выберу какой-либо элемент в левой половине, будет введена первая ячейка. Ты знаешь почему?

collectionView.scrollToItem(at: IndexPath.init(row: sender.tag, section: 0), at: .centeredHorizontally, animated: true)

1 Ответ

0 голосов
/ 08 мая 2018

Не уверен, что это ошибка в UICollectionView с макетом потока или каким-то желаемым результатом, но вы можете сделать то, что вам нужно, установив UICollectionViewFlowLayout s sectionInset для вставки содержимого, а затем scrollToItem будет работать как положено:

Итак, удалите contentInset и просто добавьте в свой макет следующее:

layout.sectionInset = UIEdgeInsets(top: 0, left: cvOffset, bottom: 0, right: cvOffset)

В моем тестовом приложении оно делало то, что должно было, поэтому прокручивал до выбранной ячейки и центрировал для всех indexPath s

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...