当前位置:  开发笔记 > 编程语言 > 正文

如何更改模态UIViewController的动画样式?

如何解决《如何更改模态UIViewController的动画样式?》经验,为你挑选了3个好方法。

我目前正在显示如下的UIViewController:

[[self navigationController] presentModalViewController:modalViewController animated:YES];

并像这样隐藏它:

[self.navigationController dismissModalViewControllerAnimated:YES];

动画"从底部向上滑动"......然后向下滑动.如何更改动画样式?我可以让它淡入/淡出吗?

干杯!



1> Simo Salmine..:

对于iPhone 3.0+,基本的交叉淡入淡出最容易做到:

modalViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[[self navigationController] presentModalViewController:modalViewController
                                               animated:YES];


完美的工作!我花了几秒钟才意识到转换必须应用于正在呈现的viewController而不是self.

2> Ben Gottlieb..:

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];

有翻转和页面卷曲的过渡.如果您设置为淡入淡出,可以尝试调整新视图的alpha:

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中添加一个新视图并随着时间的推移逐渐淡化其alpha.

注意:如果您不在您的应用程序委托[自我窗口]将无法工作.使用self.view.window,感谢user412500的帖子指出这一点.


这太老了!请参阅下面的Simo Salminen的答案!MrDatabase你应该改变它

3> Peter DeWees..:

要更新iOS 4中的Alpha淡入淡出:

modalController.view.alpha = 0.0;
[self.view.window.rootViewController presentModalViewController:modalController animated:NO];
[UIView animateWithDuration:0.5
                 animations:^{modalController.view.alpha = 1.0;}];

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有