Я пытаюсь реализовать ту же функцию, что и мобильная Safari, когда прокручивается среди разных страниц с помощью UICollectionView. Одна страница находится посередине, а некоторые другие также видны.UICollectionView - горизонтальный пейджинг с видимыми 3 страницами и 1 в середине с использованием UICollectionView
Я изо всех сил, чтобы добиться такого поведения, используя UICollectionView. Есть один способ, которым я нашел, как разместить 3 страницы на одном экране - сделать страницы меньше и установить соответствующие вставки. Но как только я устанавливаю страницы меньше, и я разрешаю пейджинг, страницы не прокручиваются в центр так, как должны. Я могу также оставить пейджинговой инвалидов и использовать этот метод в подклассе UICollectionViewFlowLayout:
- (CGRect)rectForTargetPageForProposedContentOffset:(CGPoint)proposedContentOffset withScrollingVelocity:(CGPoint)velocity
В этом методе я могу установить, где именно UICollectionView остановится. Однако опыт прокрутки не так хорош, как при использовании UIScrollview с включенным пейджингом. Когда я проскользнул с большей скоростью, несколько страниц были прокручены и остановились на предлагаемой странице. То, что я хочу достичь, - это то же поведение, что и обычный просмотр прокрутки с включенным пейджингом - независимо от скорости, которую я использую, я получу только одну страницу.
Есть ли у кого-нибудь идеи, как это решить, используя UICollectionView?
Почему вы не могли просто игнорировать параметр 'velocity' в этом методе и возвращать прямоугольник для следующей страницы? – Tricertops
Я пробовал это, и прокрутка мне кажется странной. Это не так хорошо, как пейджинг. –
См. Мой ответ ниже ... – Tricertops