Iphone 在播放splash时,我可以做些什么吗?
请告诉我,我可以在应用程序加载(启动屏幕显示)时使用一段时间来执行一些后台操作吗?(我需要打电话给CLLocationManager并更新当前位置)如果允许我这样做,请告诉我在哪里放置代码。在显示真正的启动屏幕时,不可能执行任何操作。 你的行动从一开始Iphone 在播放splash时,我可以做些什么吗?,iphone,objective-c,Iphone,Objective C,请告诉我,我可以在应用程序加载(启动屏幕显示)时使用一段时间来执行一些后台操作吗?(我需要打电话给CLLocationManager并更新当前位置)如果允许我这样做,请告诉我在哪里放置代码。在显示真正的启动屏幕时,不可能执行任何操作。 你的行动从一开始 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法,该方法在删除初始屏
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
方法,该方法在删除初始屏幕时执行。
如果您想在显示用户界面之前执行一些耗时的操作,您唯一的选择就是在此期间手动显示“假”启动屏幕。它可以是图像或其他任何东西,例如活动指示器或动画。如果使用与启动屏幕相同的图像,
用户将看不到任何区别,它看起来像启动屏幕将为他保留几秒钟的时间,但您将已经加载了数据
在这种情况下,您的应用程序代理可能如下所示:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.viewController = [[ViewController alloc]
initWithNibName:@"FakeSplashViewController" bundle:nil];
self.window.rootViewController = self.viewController;
[self performSelectorInBackground: @selector(someLongOperation) withObject: nil];
[self.window makeKeyAndVisible];
return YES;
}
- (void) someLongOperation{
//doing something
//...
[self performSelectorOnMainThread:@selector(atLastLoadGUI) withObject:nil waitUntilDone:NO];
}
- (void) atLastLoadGUI{
// start GUI
}
“闪屏”并不是真正打算用作闪屏。它最初用于显示应用程序的UI,但其中没有任何数据。这是立即显示给用户的印象,应用程序加载非常快,然后刷新其中的数据。但人们对它进行了调整,以显示加载屏幕(公司徽标等),所以我认为苹果最终接受了即将发生的事情。