全屏 UIView 不会为其外观设置动画
Posted
技术标签:
【中文标题】全屏 UIView 不会为其外观设置动画【英文标题】:Fullscreen UIView will not animate its appearance 【发布时间】:2011-12-29 23:22:42 【问题描述】:我需要一些帮助来完成一些基本的过渡工作。我想我在概念上不明白这一点。
我加载了一个主视图,该视图在其 viewDidLoad 中加载了一个“登录屏幕”。 “登录屏幕”是一个自定义 xib + 自定义视图控制器。 加载方式如下:
ISSplashScreenViewController* splashScreenController = [[ISSplashScreenViewController alloc] initWithNibName:@"ISSplashScreen" bundle:nil];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:splashScreenController.view cache:YES];
[UIView setAnimationDuration: 1.5];
[splashScreenController viewWillAppear:YES];
[self.view addSubview:splashScreenController.view];
[splashScreenController viewDidAppear:YES];
[UIView commitAnimations];
我只能看到状态栏动画(我认为这是因为它隐藏在主窗口中,但我在登录屏幕的 viewDidLoad 中调用它)。
登录屏幕的正文“刚刚出现”。
我想知道是否有人可以解释为什么这不起作用,也许会建议我可以做些什么来使它起作用。我想我必须从应用程序的子视图中删除主视图,然后加载登录视图。
我也试过这个,但它不起作用。主视图就在那里。
[splashScreenController viewWillAppear:YES];
[self.view.superview addSubview:splashScreenController.view];
[self.view.superview bringSubviewToFront:splashScreenController.view];
[self.view removeFromSuperview];
[splashScreenController viewDidAppear:YES];
非常感谢任何帮助,
谢谢
【问题讨论】:
【参考方案1】:尝试使用self.view
而不是启动画面控制器的视图调用-setAnimationTransition:forView:cache:
。
【讨论】:
我试过了,没有任何改变。我尝试为两个控制器设置动画,现在状态栏出现的速度是原来的两倍。不过,我试图加载的视图仍然没有动画。以上是关于全屏 UIView 不会为其外观设置动画的主要内容,如果未能解决你的问题,请参考以下文章