Как я могу изменить стиль анимации модального UIViewController?

69
задан Jason 14 January 2010 в 21:08
поделиться

2 ответа

Marcus Zarra отправил отличное решение этого в списке рассылки SDK:

UIViewController *controller = [[[MyViewController alloc] init] autorelease];
UIViewAnimationTransition trans = UIViewAnimationTransitionCurlUp;
[UIView beginAnimations: nil context: nil];
[UIView setAnimationTransition: trans forView: [self window] cache: YES];
[navController presentModalViewController: controller animated: NO];
[UIView commitAnimations];

существуют переходы для зеркального отражения и завихрения страницы. Если Вы установлены на исчезновении, может попытаться корректировать альфу Вашего нового представления:

UIViewController *controller = [[[MyViewController alloc] init] autorelease];
controller.view.alpha = 0.0;
[navController presentModalViewController: controller animated: NO];
[UIView beginAnimations: nil context: nil];
controller.view.alpha = 1.0;
[UIView commitAnimations];

Однако то, что Вы, вероятно, хотите, является плавно накладыванием или по крайней мере исчезновением - законченный. Когда UINavigationController переключается на новое представление, он удаляет старый. Для этого эффекта Вы, вероятно, более обеспечены просто добавление нового представления к Вашему существующему UIViewController и постепенного появления его альфа со временем.

Примечание: Если Вы не будете в своем делегате приложения [сам, то окно] не будет работать. Используйте self.view.window благодаря сообщению user412500 для указания на это.

60
ответ дан Sheepdogsheep 24 November 2019 в 13:35
поделиться

Для iPhone 3.0+ основной кроссфейд проще всего сделать так:

modalViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[[self navigationController] presentModalViewController:modalViewController
                                               animated:YES];
194
ответ дан 24 November 2019 в 13:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: