UICollectionView с UICollectionViewCompositionalLayout, прокруткаToItem не работаетIOS

Программируем под IOS
Ответить
Anonymous
 UICollectionView с UICollectionViewCompositionalLayout, прокруткаToItem не работает

Сообщение Anonymous »

У меня есть горизонтальный UICollectionView с UICollectionViewCompositionalLayout и ортогональнымScrollingBehavior = .groupPagingCentered, созданный следующим образом:

Код: Выделить всё

    private lazy var compositionalLayout = UICollectionViewCompositionalLayout(sectionProvider: { [weak self] (_: Int, _: NSCollectionLayoutEnvironment) -> NSCollectionLayoutSection? in

guard let self else { return nil }
let itemSize = NSCollectionLayoutSize(widthDimension: .absolute(self.cellWidth), heightDimension: .absolute(Const.Layout.itemSize.height))
let item = NSCollectionLayoutItem(layoutSize: itemSize)
item.contentInsets = NSDirectionalEdgeInsets(top: 0, leading: 0, bottom: 0, trailing: 0)

let groupSize = NSCollectionLayoutSize(widthDimension: .absolute(self.cellWidth), heightDimension: .absolute(Const.Layout.itemSize.height))
let group = NSCollectionLayoutGroup.horizontal(layoutSize: groupSize, subitems: [item])
// group.contentInsets = NSDirectionalEdgeInsets(top: 0, leading: 0, bottom: 0, trailing: 0)

let section = NSCollectionLayoutSection(group: group)
section.orthogonalScrollingBehavior = .groupPagingCentered
section.visibleItemsInvalidationHandler = { [weak self] (_, _, _) in
guard let self else { return }
let center = self.contentView.convert(self.collectionView.center, to: self.collectionView)
guard let indexPath = self.collectionView.indexPathForItem(at: center) else { return }
.... // Item change handler
}
return section
})
Мне нужно прокрутить список до нужного элемента в представлении коллекции, поэтому я пытаюсь:

Код: Выделить всё

collectionView.scrollToItem(at: IndexPath(row: indexOfItem, section: 0), at: .centeredHorizontally, animated: false)
но происходит прокрутка не к тому элементу.

Подробнее здесь: https://stackoverflow.com/questions/793 ... m-doesnt-w
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»