2016-01-27 5 views
2

У меня есть свиток с четырьмя видами внутри него. Размер этих представлений равен размеру прокрутки. Между всеми этими представлениями имеется 10 точек.UIScrollView полноэкранный пейджинг с интервалом

Когда я делаю pagingEnabled = true, вид прокрутки не перемещается между этими видами из-за интервала. Я пробовал все решения this, но они не работают. Есть ли другой способ сделать это? Мне нужно, чтобы сохранить нативного поведение на ПЕЙДЖИНГ

Here is a demo

+0

Возможно, вы захотите использовать 'UICollectionView'. –

+0

@AaronWojnowski Есть такая же проблема с представлением коллекции – rabbitinspace

+0

Что именно вы имеете в виду, когда говорите, что просмотр прокрутки не двигается правильно? разместить какой-нибудь код и записать gif? – ishaq

ответ

0

Просто видел видео, что вы видите аккумулируется эффект расстояния 10 точек. Например, скажите, что ваш ScrollView - 100x100 баллов, а ваши страницы также 100x100 баллов. Теперь, когда вы размещаете Page 1 в ScrollView, она начинается в x = 0, на следующей странице (Page 2) не запускается x = 100, из-за расстояния от 10 точки, на следующей странице начинается x = 110. Так что на ...

При прокрутке Page 2, она движется x от (ширина равна ScrollView «s) 0 к 100. Таким образом, вы видите расстояние между точками 10 в начале и затем Page 2 начинается с 110. При прокрутке Page 3, вы видите 10pt из Page 2, 10 точки интервалов и 80 точек Page 3. Так что на ...

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

Таким образом, все ваши страницы должны быть 90pt широко. Page 1 следует размещать по адресу x = 5. поэтому на первом экране вы видите 5 точечный интервал, 90 баллов Page 1 и 5 точек интервала. когда вы прокрутите до Page 2, вы снова увидите 5 разность точек, 90 баллов Page 2 и 5 точек интервала.

Имеет ли смысл?

Было бы намного проще, если вы сделаете это с помощью CollectionView. Ширина каждой ячейки должна быть 10 точек меньше, чем ширина CollectionView. CollectionView «s Cell Spacing должен быть установлен на 10 пт, как левая и правая Раздел Врезка должен быть установлен в 5PT и прокрутки направления должен быть установлен на горизонтальной .

UPDATE: Поскольку вам требуется между страницами разноса и стандартного подпрыгивая поведение можно либо писать пользовательские прокрутки поведения - которая заботится разнос Межамери- страницы и bounciness - или вы могли бы использовать от автономного компонента. Нечто вроде WSPagePreview или SCPageViewController может быть хорошим выбором.

Совет: Когда вам нужно искать компонент с открытым исходным кодом, CocoaPods и CocoaControls два хороших ресурсов.

+0

Спасибо за ответ, но мне нужна ячейка для покрытия всего экрана. Я попытался просмотреть коллекцию, но не повезло – rabbitinspace

+0

, тогда вам нужно написать свой собственный код подкачки (что было бы не слишком сложно), он должен будет убедиться, что каждый раз, когда он прокручивает «ширину страницы + межстраничный интервал» пикселей (т. е. если ширина страницы составляет 100pt, а интервал 10pt, она должна прокручивать 110pt, чтобы убедиться, что следующая страница полностью видна) – ishaq

+0

Но в этом случае я пропущу подпрыгивание при прокрутке между страницами – rabbitinspace

Смежные вопросы