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

Как сделать завиток страницы, как в приложении storybook в iPad

Я работаю над приложением storybook, я хочу сделать завиток страницы, как в следующем видео.

Демо-видео

Может ли кто-нибудь сказать мне, как это сделать именно так.

Update:

Я хочу, чтобы эта страница завивалась для поддержки iOS 4.3+. UIPageViewController будет работать только на iOS 6.

4b9b3361

Ответ 1

Возможно, вы захотите рассмотреть UIPageViewController. Это очень полезно при создании приложений, которые используют анимацию зависания страниц. Вот ссылка документация.

Ответ 2

Для этого вы можете использовать эффект анимации UIView. Я думаю, это должно помочь вам

[UIView beginAnimations:@"Curl" context:nil];
[UIView setAnimationDuration:2.0];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:contentView cache:YES];
[UIView commitAnimations];

где contentView - это представление, в котором вы применяете анимацию. Изменяя продолжительность и кривую анимации, вы можете изменить эффект анимации.

Ответ 3

Есть два способа сделать это:

  • Трудный способ, реализовать все самостоятельно (с нуля, с помощью слоев и масок, преобразований и градиентов) и много головной боли.

  • Простой способ, прочитайте документацию для UIPageViewController, как предложено @Zen. Это очень полезно и дает вам точную анимацию, которую вы хотите (как показано на видео). Или, используя какой-то сторонний код.

Если у вас нет ограничений по времени, тогда я скажу, идите первым путем. Вы узнаете много.

Приветствия, получайте удовольствие:)

ИЗМЕНИТЬ

Вот ссылка на пример приложения:

https://www.dropbox.com/s/x4qo2igrzvnkj16/CurlAnimationProject.zip

проверьте его и скажите, что вы думаете.

Ответ 4

SettingViewController *svc = [[SettingViewController alloc]initWithNibName:@"SettingViewController" bundle:nil];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:2];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[self.navigationController pushViewController:svc animated:YES];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.navigationController.view cache:NO];
[UIView commitAnimations];

Ответ 5

Как уже упоминалось несколько раз в ответах, UIPageViewController (документация на Apple) - это то, о чем вы должны смотреть.

Реализация довольно проста, контроллер использует 2 делегата

  • datasource: управление отображаемым контентом (вашими страницами) с помощью 2 основных методов
  • делегат: контроль его поведения

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

Для перехода со страницы на страницу вы можете установить анимацию прокрутки (красивую для типа фото/портфелей) или зависание страницы, которое вы ищете.

Ответ 6

Вы можете сделать эффект завивки страницы/флип

Для ландшафтного режима:

[UIView beginAnimations:@"Curl" context:nil];
[UIView setAnimationDuration:2.0];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:contentView cache:YES];
[UIView commitAnimations];

Для портретного режима:

[UIView beginAnimations:@"Curl" context:nil];
[UIView setAnimationDuration:2.0];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlLeft forView:contentView cache:YES];
[UIView commitAnimations];