Ответ 1
Возможно, вы захотите рассмотреть UIPageViewController
. Это очень полезно при создании приложений, которые используют анимацию зависания страниц. Вот ссылка документация.
Я работаю над приложением storybook, я хочу сделать завиток страницы, как в следующем видео.
Может ли кто-нибудь сказать мне, как это сделать именно так.
Update:
Я хочу, чтобы эта страница завивалась для поддержки iOS 4.3+. UIPageViewController будет работать только на iOS 6.
Возможно, вы захотите рассмотреть UIPageViewController
. Это очень полезно при создании приложений, которые используют анимацию зависания страниц. Вот ссылка документация.
Для этого вы можете использовать эффект анимации UIView. Я думаю, это должно помочь вам
[UIView beginAnimations:@"Curl" context:nil];
[UIView setAnimationDuration:2.0];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:contentView cache:YES];
[UIView commitAnimations];
где contentView - это представление, в котором вы применяете анимацию. Изменяя продолжительность и кривую анимации, вы можете изменить эффект анимации.
Есть два способа сделать это:
Трудный способ, реализовать все самостоятельно (с нуля, с помощью слоев и масок, преобразований и градиентов) и много головной боли.
Простой способ, прочитайте документацию для UIPageViewController
, как предложено @Zen. Это очень полезно и дает вам точную анимацию, которую вы хотите (как показано на видео). Или, используя какой-то сторонний код.
Если у вас нет ограничений по времени, тогда я скажу, идите первым путем. Вы узнаете много.
Приветствия, получайте удовольствие:)
ИЗМЕНИТЬ
Вот ссылка на пример приложения:
https://www.dropbox.com/s/x4qo2igrzvnkj16/CurlAnimationProject.zip
проверьте его и скажите, что вы думаете.
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];
Как уже упоминалось несколько раз в ответах, UIPageViewController (документация на Apple) - это то, о чем вы должны смотреть.
Реализация довольно проста, контроллер использует 2 делегата
Он реализует жест прокрутки для прокрутки со страницы на страницу и может содержать элемент управления страницы внизу вашего представления.
Для перехода со страницы на страницу вы можете установить анимацию прокрутки (красивую для типа фото/портфелей) или зависание страницы, которое вы ищете.
Вы можете сделать эффект завивки страницы/флип
Для ландшафтного режима:
[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];