iphone - iPhone应用程序中的启动画面使用Storyboard延迟

标签 iphone objective-c ios ios5

所以我知道 Default.png 可用于 iPhone 应用程序中的启动画面,但我发现它看起来不专业,因为应用程序完成加载后没有动画。

所以我正在尝试添加一个会淡出的启动画面,然后转到上一个 View 。

互联网上的大多数示例往往基于使用 addSubview 的旧方式。我将如何将其添加到我的 Storyboard应用程序中。

当前代码(时间错误,因为我不确定它最初是否有效)

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    splashView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Default2.png"]];
    splashView.frame = CGRectMake(0, 0, 324, 480);
    [_window addSubview:splashView];
    [_window bringSubviewToFront:splashView];
    [_window makeKeyAndVisible];

    [self performSelector:@selector(removeSplash) withObject:nil afterDelay:1500.2];
    return YES;
}

-(void)removeSplash;
{
    [UIView animateWithDuration:1.0 animations:^{self.splashView.alpha = 0.0;} completion:^(BOOL finished){ [splashView removeFromSuperview]; }];
    [splashScreen release];
}

最佳答案

除了Guntis Treulands的回答我有另一种方法可以做到这一点,而无需将动画代码移出 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法。

只需将您的 splashView 直接添加到 _window.rootViewController.view .

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    UIImage *splashImage = [UIImage autoAdjustImageNamed:@"Default.png"];
    UIImageView *splashImageView = [[UIImageView alloc] initWithImage:splashImage];
    [self.window.rootViewController.view addSubview:splashImageView];
    [self.window.rootViewController.view bringSubviewToFront:splashImageView];
    [UIView animateWithDuration:1.5f
                          delay:2.0f
                        options:UIViewAnimationOptionCurveEaseInOut
                     animations:^{
                         splashImageView.alpha = .0f;
                         CGFloat x = -60.0f;
                         CGFloat y = -120.0f;
                         splashImageView.frame = CGRectMake(x,
                                                            y,
                                                            splashImageView.frame.size.width-2*x,
                                                            splashImageView.frame.size.height-2*y);
                     } completion:^(BOOL finished){
                         if (finished) {
                             [splashImageView removeFromSuperview];
                         }
                     }];

    return YES;
}

关于iphone - iPhone应用程序中的启动画面使用Storyboard延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10962942/

相关文章:

ios - 为什么我不能调用另一个类的方法

iphone - 如何更改 Xcode 项目中的产品名称?

iphone - 动画/视频作为启动图像 ios

ios - "Run"命令为 Particle iOS Cloud SDK 禁用

objective-c - 观察者通知的 NSNotification 顺序

ios - 将 UIImage 裁剪到中心正方形

iphone - unity生成iphone源码后无法运行游戏

ios - UITableViewController loadView 加载了 nib 但没有得到 UITableView。

ios - GradientLayer 不水平填充 UIButton 边界

iphone - 在 Objective C 中检查内存分配的正确方法