所以我希望有一个全屏幕启动(320x480 - 没有状态窗格和与Default.png相同的图像)在短暂延迟后在屏幕左侧动画显示。我可以创建启动和动画确定,唯一的问题是底层视图控制器的状态窗格显示在启动屏幕的顶部。如何设置全屏幕启动画面,以便在动画进行时显示底层根视图控制器(具有状态窗格),而不会在启动画面上显示状态窗格。
我使用info.plist标志最初隐藏状态窗格,但是我希望状态窗格仅在底层视图上可见,因为触发器移出屏幕,但不会显示在初始化的顶部。< / p>
我不想隐藏底层状态窗格并在动画结束时再次显示它,我只是希望它与主视图的其余部分一起逐渐显示。
我希望这一切都有道理。
由于 2J
答案 0 :(得分:0)
以下是使用非常基本的启动画面的示例。应在应用程序委托中的application:didFinishLaunchingWithOptions:
末尾添加以下代码。
// create splash screen
splashView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
splashView.backgroundColor = [UIColor lightGrayColor];
// adding views to window
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
[self.window addSubview:rootController.view];
[self.window addSubview:splashView];
[self.window makeKeyAndVisible];
// animate splash screen
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:2];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(removeSplashView:)];
[splashView setAlpha:0.0];
[UIView commitAnimations];
答案 1 :(得分:0)
您可以将动画启动视图控制器添加到状态窗口,然后将其淡出。我不相信视图被剪裁,如果是你可能会运气不好。它可以像这个例子一样访问。
UIWindow *statusWindow = [[UIWindow alloc]initWithFrame:CGRectMake(0, 0, 320, 480)];
statusWindow.hidden = NO;
statusWindow.windowLevel = UIWindowLevelStatusBar+1;
UIView *mask = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)];
mask.backgroundColor = [UIColor redColor];
[statusWindow addSubview:mask];
[statusWindow makeKeyAndVisible];
[UIView animateWithDuration:1 delay:5 options:nil animations:^{
statusWindow.alpha = 0;
} completion:^(BOOL finished) {
[self.window makeKeyAndVisible];
[statusWindow removeFromSuperview];
}];
这样状态栏将被隐藏。唯一的问题是,您需要跟踪方向更改并手动调整遮罩,因为它是位于状态栏窗口上方的UIWindow。