当前位置:  开发笔记 > 编程语言 > 正文

如何在iPhone上显示更长时间的启动画面?

如何解决《如何在iPhone上显示更长时间的启动画面?》经验,为你挑选了7个好方法。

如何在比iPhone上的默认时间更长的时间内显示启动画面?



1> Paul Tomblin..:

阅读Apple iPhone人机界面指南(HIG)."启动画面"不应该用于品牌或显示徽标,它应该看起来像应用程序的默认条件,因此它似乎可以快速启动.

让它在那里停留更长时间会违反HIG.


这根本不回答这个问题.问的问题是"如何?",而不是"我应该吗?".
有时"不做"是"如何"的最佳答案.
@Paul Tomblin:我理解你的观点,但它确实不是重点.我认为一个友好的警告加上"但是,如果你真的想这样做,......"的反应可能是最好的方法.思考?
作为参考,我同意你不应该这样做,但我仍然不同意这种回答方式.我同意不同意;)
谢天谢地,下面有一些有用的答案.是的,我理解感觉像一个正直的纯粹主义者的喜悦 - 但纽约时报的应用程序做了类似的事情,这是一个很好的方式来启动该应用程序.它会带来更多用户喜悦,而不是更少.Apple警察并没有拒绝该应用程序,因为他们知道他们无法解决所有情况 - 他们会让我们的开发人员发挥创意.
@Paul Tomblin,我发现Default.png以一种丑陋的,类似混蛋的方式捕捉到我的第一个视图.如果我想要转换说,淡入,那么你需要像@Ben描述的那样.或者应用程序可能需要在加载后继续下载信息,并希望用户再等一下.在不违反HIG的文字或精神的情况下,有很多理由这样做.
不,抱歉保罗,问题是"如何".
那么,@ korona,你怎么做*你告诉别人他们问的怎么做是他们真的,除了回答这个问题之外真的应该做的事情吗?
不,这不是重点.如果问题是"你在哪里隐藏你的房子钥匙,因为我想偷你的东西",如果我的答案是"不要那样做",你会谴责我吗?而不是"一个友好的警告加上'然而......'?

2> Ben Gottlieb..:

最简单的方法是创建一个UIImageView,其图像是Default.png.在您的applicationDidFinishLaunching:方法中,将该图像视图添加到您的窗口,并在您希望您的启动画面消失时隐藏它.


因为如果名称为default.png,Apple会默认识别默认图像

3> nevan king..:

我需要这样做才能阻止显示表视图,直到数据通过网络加载.我使用了一个我在这里找到的变体:

http://michael.burford.net/2008/11/fading-defaultpng-when-iphone-app.html

在App Delegate的界面中:

@interface AppDelegate : NSObject 
{
  UIImageView *splashView;
}

在实施中:

@implementation AppDelegate
- (void)applicationDidFinishLaunching:(UIApplication *)application {


  // After this line: [window addSubview:tabBarController.view];

  splashView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
  splashView.image = [UIImage imageNamed:@"Default.png"];
  [window addSubview:splashView];
  [window bringSubviewToFront:splashView];

  // Do your time consuming setup

  [splashView removeFromSuperview];
  [splashView release];
}

确保资源中有Default.png



4> Taimur Ajmal..:

在你的appDelegate中,一个叫做applicationDidFinishedLaunching的方法使用一个sleep函数.在睡眠功能中传递一个数字为no.想要保持屏幕的秒数.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{    
    [window makeKeyAndVisible];
    [window addSubview:viewController.view];
    sleep(5);
    return YES;
}

我为这件事搜索了很多,每个人都给出了他们自己复杂的观点.我找不到一个让我这么做的简单方法.

吻(保持简单和聪明:)我避免了实际的进攻.



5> 小智..:

我做的非常简单,让我的rootViewController推送一个modalViewController,从UIViewController的子类中的"Splash.nib"加载我称之为"SplashViewController".确切的电话是:

- (void) viewDidLoad {
SplashViewController *splashScreen = [[[SplashViewController alloc]    
        initWithNibName:@"SplashViewController" bundle:nil] autorelease];
[self presentModalViewController:splashScreen animated:NO];
//continue loading while MVC is over top...

当您启动应用程序时,它会弹出,就像启动画面一样.然后,SplashViewController笔尖只是一个全屏UIImageView,带有一个启动png,320x480.经过一秒钟的NSTimer(其他任何事情似乎都妨碍了),它会触发timerFireMethod,这是一个只调用的自定义方法

[self dismissModalViewControllerAnimated:YES];

然后模态VC只是向下滑动,离开我的顶级tableView.好处是,当MVC启动时,由于模态视图控制器的独立性,底层表可以继续加载.因此,我不认为这违反了HIG,实际上确实允许更快的启动.你更喜欢看什么,一张可爱的照片,或一个空的默认视图(打鼾)?




6> Ankit Srivas..:

即使它违反了指导原则,但如果你仍然希望这样做而不是一个更好的方法,而不是睡眠线程

//Extend the splash screen for 3 seconds.
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:3]];

这样主线程就不会被阻塞,如果它正在侦听任何通知和其他一些网络相关的东西,它仍然会继续.

SWIFT更新:

 NSRunLoop.currentRunLoop().runUntilDate(NSDate(timeIntervalSinceNow:3))



7> Charles Robe..:

是的,最简单的方法是(记得将'default.png'添加到目标 - > [yourProjectName]:在'xCode'中启动图像):

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [NSThread sleepForTimeInterval:3.0];
}

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有