Как изменить targetContentOffset UICollectionView в Swift? - PullRequest
0 голосов
/ 17 ноября 2018

В моем UIViewController у меня есть UICollectionView.Делегат настроен правильно.Это просто отлично работает.isPagingEnabled установлено на true.Но теперь я хочу изменить постраничные позиции, которые я пробовал в scrollViewWillEndDragging, потому что в документации написано:

Ваше приложение может изменить значение параметра targetContentOffset, чтобы указать, где заканчивается просмотр прокрутки.анимация прокрутки.

Эта функция вызывается правильно, но единственное, что происходит, когда я хочу установить новую конечную точку, UICollectionView прокручивается до 0.

Это мой код:

func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
       print(scrollView.contentOffset, "actual Offset")
       print(targetContentOffset.pointee, "future offset")


       targetContentOffset.pointee = CGPoint(x: 100, y: 0)
       print(targetContentOffset.pointee, "new future offset")
}

При печати («новое смещение будущего») печатается правильное значение.Похоже, значение меняется после этой функции.

1 Ответ

0 голосов
/ 17 ноября 2018
func targetContentOffset(forProposedContentOffset proposedContentOffset: CGPoint, 
   withScrollingVelocity velocity: CGPoint) -> CGPoint

Описание:

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

Переопределите этот метод макета, вместо непосредственного изменения значения targetContentOffset.

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

Docs: https://developer.apple.com/documentation/uikit/uicollectionviewlayout/1617729-targetcontentoffset

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