iPhone动画闪屏,隐藏在状态窗格后面

时间:2012-02-20 23:13:36

标签: iphone objective-c ios cocoa-touch

所以我希望有一个全屏幕启动(320x480 - 没有状态窗格和与Default.png相同的图像)在短暂延迟后在屏幕左侧动画显示。我可以创建启动和动画确定,唯一的问题是底层视图控制器的状态窗格显示在启动屏幕的顶部。如何设置全屏幕启动画面,以便在动画进行时显示底层根视图控制器(具有状态窗格),而不会在启动画面上显示状态窗格。

我使用info.plist标志最初隐藏状态窗格,但是我希望状态窗格仅在底层视图上可见,因为触发器移出屏幕,但不会显示在初始化的顶部。< / p>

我不想隐藏底层状态窗格并在动画结束时再次显示它,我只是希望它与主视图的其余部分一起逐渐显示。

我希望这一切都有道理。

由于 2J

2 个答案:

答案 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。