Сторінковий контролер (page view controllers) ios uipageviewcontroller, apple, xcode developer

Сторінковий контролер (page view controllers) ios uipageviewcontroller, apple, xcode developer

Ви використовуєте контролер уявлення посторінкового виду для подання контенту посторінковим чином. Контролер page view керує своєю ієрархією видів. Батьківський вид цієї ієрархії управляється контролером показів сторінок, а дочірні види управляються контролерами видів контенту, які ви надаєте.

Анатомія інтерфейсу контролера уявлення посторінкового виду

Контролер посторінкового виду складається з одного виду, що представляє контент, і забезпечує візуальний ефект перевертання сторінок.

Page view інтерфейс містить наступні об'єкти:

  • Делегат (необов'язково). (Delegate).
  • Джерело даних (необов'язково). (DataSource).
  • Масив поточних контролерів видових уявлень. (NSArray * viewControllers)
  • Масив розпізнавати жестів. (NSArray * gestureRecognizers).

Джерело даних надає контролер виду на вимогу.

Делегат надає методи, які викликаються у відповідь на жести-навігації та зміни орієнтації.

Масив контролерів видів містить контролери видів контенту, який в даний час відображається. Кількість елементів в цьому масиві варіюється в залежності від опцій, переданих в контролер посторінкового уявлення.

Масив розпізнавати жестів заповнюється тільки, якщо встановлено джерело даних. Ці розпізнаються жести можуть перегортати сторінки, коли користувач здійснює натискання, струшування або перетягування.

Створення інтерфейсу Page View контролера.

Створення інтерфейсу Page View контролера, використовуючи storyboard

Шаблон Page-Based Application в Xcode створює новий проект з Page View контролером в якості першої сцени.

Щоб додати контролер посторінкового уявлення видів в існуючий storyboard, виконайте наступні дії:

  1. Перетягніть Page View контролер з бібліотеки. Додайте Page View контролер в свій storyboard.
  2. У інспектора атрибутів налаштуйте відповідні параметри.
  3. При бажанні встановіть делегат, джерело даних, або і те й інше, підключивши відповідні IBOutlet.
  4. Відкрийте його в якості першого контролера уявлення виду, вибравши опцію Is Initial View Controller в інспектора атрибутів (або уявіть контролер уявлення в інтерфейсі іншим чином.)

Створення інтерфейсу Page View контролера програмно

Щоб створити контролер уявлення сторінки програмно:

  1. Створіть і Ініціалізуйте контролер посторінкового уявлення за допомогою методу initWithTransitionStyle: navigationOrientation: options.
  2. Встановіть, при необхідності, джерело даних і делегат.
  3. Встановіть вихідні контролери видів контенту.
  4. Відкрийте контролер посторінкового уявлення видів на екрані.

Установка вихідних контролерів видів контенту

Якщо ви створюєте контролер посторінкового уявлення видів в Interface Builder або програмно, вам необхідно встановити його вихідні контролери видових уявлень перед показом його на екрані. Установка осужествляется за допомогою методу setViewControllers: direction: animated: completion: в якому передається масив містить відповідну кількість контролерів видів.

Зауваження. Якщо Page View контролер не має вихідного контролера видових уявлень, він повертає NO з shouldAutorotateToInterfaceOrientation: для всіх орієнтацій, збуджуючи виняток.

Налаштування поведінки при ініціалізації

Ви передаєте значення параметрів і опцій в метод initWithTransitionStyle: navigationOrientation: options. щоб налаштувати контролер посторінкового уявлення видів, при його ініціалізації. Вони будуть доступні у вигляді властивостей, але тільки для читання, після ініціалізації. Ви можете налаштувати:

  • Напрямок для навігації переходів: горизонтально або вертикально.
  • Розташування корінця книги: з будь-якого краю або по центру.
  • Стиль переходу: згортання сторінки або прокрутка.

Приклад налаштування Page View контролера:

Налаштування поведінки під час виконання з допомогою делегата.

Делегат Page View контролера реалізує протокол UIPageViewControllerDelegate. Він може виконувати дії, коли орієнтація пристрою змінюється і, коли користувач переходить на нову сторінку, він може встановити позицію корінця книги у відповідь на зміну орієнтації інтерфейсу.

Забезпечення контентом шляхом надання джерела даних

Забезпечення джерелом даних дозволяє жестам керувати навігацією. Без джерела даних, ви повинні надати власний користувальницький інтерфейс для навігації і поставляти контент, як описано в "Забезпечення контентом через установку поточного контролера виду". Джерело даних, наданий вами, повинен реалізувати протокол UIPageViewControllerDataSource.

Методи джерела даних викликаються з наведених в даний момент контролером виду, і повертають контроллеир уявлення виду, які приходять до або після нього. Для спрощення процесу пошуку попереднього або наступного контролера виду, ви можете зберігати додаткову інформацію у вашому контролері виду, наприклад, номер сторінки.

Якщо джерело даних призначений контролера посторінкового уявлення видів, від асоціюється розпізнаються жести його видами. Ці розпізнаються жести дозволяють користувачеві перегортати сторінки, натисканнями, струшування, і перетягування; вони доступні у властивості gestureRecognizers.

Забезпечення контентом через установку поточного контролера виду

Для прямого управління тим, що відображається контентом, викликають метод setViewControllers: direction: animated: completion. передаючи масив контролерів видів контенту для відображення.

Цей підхід, дозволяє користувачеві перейти до певного місця в контенті, наприклад, на першу сторінку або до змісту: Ви встановлюєте контролери видів безпосередньо, у відповідь на взаємодію користувача з призначеним для користувача інтерфейсом.

Якщо ви не надасте джерело даних, необхідно реалізувати користувальницький інтерфейс для переміщення між сторінками, наприклад, у вигляді кнопок вперед іназад. Жести управління навігацією доступні тільки якщо ви надаєте джерело даних.