анімація переходу

анімація переходу

Нещодавно ми дізналися як використовувати проміжну анімацію. а для закріплення знань я пропоную розібратися в роботі анімації переходів. Робити ми це будемо на прикладі перегортання сторінок. Тобто, напишемо щось на зразок книги, в якій реалізцем реалістичний ефект перевертання сторінки. В першу чергу створимо сам проект на основі шаблону Single View Application і назвемо його AnimationTransition. Змініть в ньому файл інтерфейсу так, як це показано на першій картинці (ща винятком анімації).

Тепер перейдемо безпосередньо до програмування:

В основному додану код потрібен для зв'язку з інтерфейсом. За винятком dataSource. в якому буде зберігатися текст для напису content і currentIndex. в якому ми будемо зберігати поточний індекс написи на екрані. Дії next і previous необхідні для майбутнього перегортання сторінок. Зв'яжіть створені об'єкти з інтерфейсом.

Розберемо по порядку як це працює. В першу чергу, ми синтезування методи доступу для об'єктів content і dataSource. потім організували очищення пам'яті від об'єкта content в разі вивантаження основного уявлення. У методі viewDidLoad ми задаємо початкове значення змінної currentIndex. инициализируем масив dataSource і встановлюємо написи content значення першого елемента цього масиву. Але все це була лише підготовка. Вся анімація виконується в методах - (IBAction) next і - (IBAction) previous. Наступні рядки вам напевно вже знайомі з уроку Проміжна анімація в iOS

Але минулого разу перед рядком [UIView commitAnimations]; ми ставили нове значення якогось з об'єктів інтерфейсу. Але в цей раз ми замінили установку нових значень методом setAnimationTransition. У нього ми передаємо три параметра: тип переходу, об'єкт інтерфейсу до якого буде застосовано перехід і мітку кешування (хочемо ми кешувати дану анімацію чи ні). Після початку анімації ми збільшуємо (або зменшуємо) значення currentIndex на одиницю і міняємо текст в написи content. Щоб при гортанні ми не намагалися отримати текст з масиву за його межами - я додав умовний оператор, який порівнює значення змінної currentIndex з розміром масиву.

У цьому прикладі ми розглянули два типи переходів, але всього їх більше:

  • UIViewAnimationTransitionNone
  • UIViewAnimationTransitionFlipFromLeft
  • UIViewAnimationTransitionFlipFromRight
  • UIViewAnimationTransitionCurlUp
  • UIViewAnimationTransitionCurlDown

Можете поекспериментувати з ними на даному прикладі.