Подтвердить что ты не робот

Эквивалент Android ViewPager на iOS? Прокрутка/пролистывание страниц данных

На Android существует аккуратный способ просмотра нескольких страниц данных с одним и тем же макетом с помощью ViewPager и Fragments. Пользователь перемещается влево или вправо, а страницы меняются. Там только один контроллер представления и один ресурс макета для всех страниц, но содержимое данных изменяется, когда пользователь просматривает. Также эффект анимации для прокрутки влево и вправо, где вы можете увидеть содержимое следующей страницы, уже загружен.

Что эквивалентно этому в iOS?

4b9b3361

Ответ 1

Используйте UIScrollView, а свойство pagingEnabled установлено в YES. Обычно UIPageControl используется вместе с ним.

Если вы используете Google для "UIScrollView paging", вы можете найти множество руководств и примеров. Apple предоставляет программу PageControl.

iOS не предоставляет какой-либо класс, подобный адаптеру, но вот учебник, в котором объясняется, как реализовать "виртуальные страницы", чтобы не создавать экземпляры сразу всех страниц: http://cocoawithlove.com/2009/01/multiple-virtual-pages-in-uiscrollview.html

Ответ 2

Вы должны посмотреть UIPageViewController. Его доступно с iOS 5.

Ответ 3

Я создал настраиваемый элемент управления для iOS, который действует аналогично android viewPager. Вы можете проверить это здесь.

Ответ 4

посетите https://github.com/vowed21/HWViewPager

Это может помочь вам.

Унаследованный UICollectionView.

Reuseable Cell, (вероятно, Android-адаптер)

И разрешить часть предварительного просмотра левой, правой стороны.

Ответ 5

Вы можете реализовать его самостоятельно, используя следующую идею.

Предположим, что мы хотим бесконечно петли через 3 элемента (ячейки) - C0, C1, C2, мы можем генерировать фиктивные ячейки в левой и правой частях центральных ячеек, результат следующим образом:

C0 C1 C2 [C0 C1 C2] C0 C1 C2

Ячейки в скобках - это ячейки, которые мы видим через экран устройства, и если мы прокручиваем влево,

C0 [C1 C2C0] C1 C2C0 C1 C2

в данный момент, force contentOffset, чтобы указать правую сторону данных фиктивных ячеек,

C0 [C1 C2C0] C1 C2C0 C1 C2- > C0 C1 C2C0 [C1 C2C0] C1 C2

Он будет работать в том же самом механизме, когда вы прокрутите его вправо.

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

https://github.com/DragonCherry/HFSwipeView

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

https://www.cocoacontrols.com/controls/hfswipeview

Просто использование параметра pagingEnabled в UIScrollView может работать в случае полноразмерного элемента ячейки, но он не будет работать должным образом, если вы хотите установить более узкую ширину элемента контента, чем его родительский (прокручиваемый) вид. Проверьте эту функцию, обратившись к образцу cocoacontrols для "Sync" или "Edge Preview".