1

我的客户希望他的初始图像淡出然后显示 UI。我不知道该怎么做。截至目前,它只会在加载后出现。有没有一种简单的方法可以做到这一点?

4

4 回答 4

3
UIImageView *splash=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"splash"]];
[UIView animateWithDuration:1
                 animations:^{
                     splash.alpha = 0.0;
                 }
                 completion:^(BOOL finished)
 {
     [splash release];
 }]; 
于 2012-04-06T08:54:43.567 回答
1

正如我刚刚在一个密切相关的问题上解释的那样,不要使用闪屏!请将此与您的客户联系起来,他们可能不熟悉人机界面指南。

也就是说,如果您无法说服您的客户,您可以淡出我在其他回复中提到的 UIImageView。

于 2012-04-04T19:49:44.080 回答
1

您可以实现自己UIViewController的闪屏:

@interface SplashScreenViewController : UIViewController {
    UIImageView *splashView;
}

@end

//

#import "SplashScreenViewController.h"

@implementation SplashScreenViewController

#pragma mark - View lifecycle

- (void)loadView {
    self.view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];

    splashView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
    [splashView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];
    [self.view addSubview:splashView];
}
- (void)viewWillAppear:(BOOL)animated {
    if (isIPad) {
        if (UIInterfaceOrientationIsPortrait([[UIApplication sharedApplication] statusBarOrientation]))
            splashView.image = [UIImage imageNamed:@"Default-Portrait~ipad.png"];
        else
            splashView.image = [UIImage imageNamed:@"Default-Landscape~ipad.png"];
    }
    else
        splashView.image = [UIImage imageNamed:@"Default.png"];
}
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
    if (isIPad) {
        if (UIInterfaceOrientationIsPortrait(toInterfaceOrientation))
            splashView.image = [UIImage imageNamed:@"Default-Portrait~ipad.png"];
        else
            splashView.image = [UIImage imageNamed:@"Default-Landscape~ipad.png"];
    }
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return (isIPad ? YES : UIInterfaceOrientationIsPortrait(interfaceOrientation));
}

@end

UIViewController然后,在显示之后,您可以使用任何您想要的过渡来隐藏它。

于 2012-04-04T19:57:37.150 回答
1

我正在查看本教程,但决定不实施它,所以我不能保证它是否有效,但一切看起来都在检查

http://www.dobervich.com/2010/10/22/fade-out-default-ipad-app-image-with-proper-orientation/

请注意,尽管为您的应用程序启动添加太多内容是应用程序拒绝的理由。

避免显示关于窗口或闪屏。一般来说,尽量避免提供任何类型的启动体验,阻止人们立即使用您的应用程序。

资料来源:苹果开发者网站

于 2012-04-04T19:47:26.313 回答