2015-01-07 2 views
0

Я хочу создать 10 UIViews с UIButtons и UILabels в Scrollview с пейджинговой поддержкой.Single UIView в UIScrollView на каждой странице

Я хочу повторно использовать представление на каждой странице прокрутки. Я не хочу создавать 10 представлений, используя цикл.

Как я могу это сделать?

И еще один вопрос. Я хочу придать анимационный эффект предыдущему и следующему виду во время прокрутки. так как я могу определить мнение?

+0

Создать только 3 'UIView' и поддерживать их с' Предыдущий next' функциональности. –

+0

@AbhishekSharma: Я выполнил эту задачу с помощью swipegesturerecognizer, но мне нужен анимационный эффект пейджинга UIScrollview, который я не могу получить в gesturerecoginzer – iPhone

+1

use '- (void) scrollViewDidEndDecelerating: (UIScrollView *) scrollView' method and enable 'Paging' из 'UIScrollview' и во время изменения вы можете дать' Animation' –

ответ

0

Я бы использовал 3 UIView s - один для отображения в настоящее время, один для предыдущего и один для следующего вида. При прокрутке, я бы обновить кадры этих взглядов (или ограничения), например:

  1. Исходное состояние:
    • 'Предыдущая' кадр: (-100, 0, 100, 100)
    • 'Текущий вид' кадр: (0, 0, 100, 100)
    • 'Следующий вид' кадр: (100, 0, 100, 100)
  2. После прокрутки на одной странице:
    • 'Предыдущая' кадр: (0, 0, 100, 100)
    • 'Текущий вид' кадр: (100, 0, 100, 100)
    • 'Следующий вид' кадр: (200, 0, 100, 100)

Эти взгляды не только для отображения цели, так что нет необходимо самим определять эти взгляды; Мне нужен только текущий индекс страницы, а также мне нужно обновлять каждое представление после прокрутки страницы с данными контента на основе модели данных, например. массива со следующими индексами: (currentPageIndex - 1), currentPageIndex, (currentPageIndex + 1).

+0

Вы говорите об использовании swipeGestureRecognizer? – iPhone

+0

У меня есть ваше мнение. Такой же код, который я реализовал с помощью swipeGestureRecognizer, но как выполнить эту задачу с помощью UIScrollView? – iPhone

+0

Я говорю об использовании 'UIScrollView' с свойством' pagingEnabled', заданным 'YES'. Если вы используете это, вам не нужны никакие распознаватели жестов - просмотр прокрутки имеет встроенный распознаватель жестов, который обрабатывает вас. –

1

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

+0

с помощью custom CollectionViewCell вы можете это сделать просто установите высоту и ширину коллекцииViewCell как экран и установите FlowLayout в горизонтальное положение. –

1

Определенно использовать UICollectionView. Плюсы?

  1. Легче добавлять/удалять дополнительные страницы. Что делать, если вы хотите изменить порядок и т. Д.? ;)
  2. Многоразовые элементы (эффективная память).
  3. Легкий дизайн в IB.

EDIT: UICollectionView также использует UIScrollViewDelegate.

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