Я пытаюсь создать компонент свайпа, который мне нужно центрировать в соответствии с изображением, поэтому я устанавливаю layout.sectionInset = UIEdgeInsets (top: 0, left: 32, bottom: 0, right: 32)
Когда я использую функцию автопрокрутки collection.scrollToItem (at: indexPath, at: .centeredHorizontally, animated: true)
, она работает отлично.Но когда я делаю ручной Swipe, я не могу централизоваться.Я не мог изменить pointee
, поэтому он центрировался на экране.
Работа с scrollToItem
.centeredHorizontally
let cellWithIncludingSpacing = (collection.layout.itemSize.width + collection.layout.minimumLineSpacing)
var offset = targetContentOffset.pointee
let index = (offset.x + scrollView.contentInset.left) / cellWithIncludingSpacing
let roundedIndex = round(index)
offset = CGPoint(x: roundedIndex * cellWithIncludingSpacing - scrollView.contentInset.left,
y: -scrollView.contentInset.top)
targetContentOffset.pointee = offset
У меня сейчас естьэтот результат:
Проект репо Link