ios - ios - 显示启动画面的时间超过默认秒数

是否可以在指定的秒数内显示Default.png? 我有一个客户端希望屏幕显示的时间比当前时间长。

他们希望它显示为 2秒。

时间:

否,在你的应用程序启动会显示 default.png 。

你可以添加一个新的viewcontroller,它将在应用程序 didFinishLoading 中显示 default.png

这样你就可以把 default.png 显示得更长一点。

如果加载数据,则只显示 default.png,这可能需要一些时间。 正如应用程序商店指南所述,您不应该延迟启动您的时间超过必要。

你还可以使用 NSThread:


[NSThread sleepForTimeInterval:(NSTimeInterval)];



你可以将这里代码放入 applicationDidFinishLaunching 方法的第一行。

例如显示 5秒的default.png 。


- (void) applicationDidFinishLaunching:(UIApplication*)application


{


 [NSThread sleepForTimeInterval:5.0];


}



将这里添加到你 application:didFinishLaunchingWithOptions: :

Swift:


//Delay 1 second


RunLoop.current.run(until: Date(timeIntervalSinceNow: 1.0))



Objective C:


//Delay 1 second


[[NSRunLoop currentRunLoop]runUntilDate:[NSDate dateWithTimeIntervalSinceNow: 1.0]];



如果使用 LaunchScreen.storyboard,则可以获得相同的视图控制器并显示它: ( 请记住设置 Storyboard id,例如"LaunchScreen")


func applicationDidBecomeActive(application: UIApplication) {



 let storyboard = UIStoryboard(name:"LaunchScreen", bundle: nil)


 let vc = storyboard.instantiateViewControllerWithIdentifier("LaunchScreen")


self.window!.rootViewController!.presentViewController(vc, animated: false, completion: nil)


 }



Swift 4


let storyboard = UIStoryboard(name:"LaunchScreen", bundle: nil)


let vc = storyboard.instantiateViewController(withIdentifier:"LaunchScreen")


 self.window!.rootViewController!.present(vc, animated: false, completion: nil)



这里教程显示 2秒的启动屏幕。 你可以轻松地更改它以满足你的需要。


- (void)showSplash {


 UIViewController *modalViewController = [[UIViewController alloc] init];


 modalViewController.view = modelView;


 [self presentModalViewController:modalViewController animated:NO];


 [self performSelector:@selector(hideSplash) withObject:nil afterDelay:yourDelay];


}



这在 Xcode 6.3.2,Swift 1.2中为我工作:


import UIKit



class ViewController: UIViewController


{


 var splashScreen:UIImageView!



 override func viewDidLoad()


 {


 super.viewDidLoad()



 self.splashScreen = UIImageView(frame: self.view.frame)


 self.splashScreen.image = UIImage(named:"Default.png")


 self.view.addSubview(self.splashScreen)



 var removeSplashScreen = NSTimer.scheduledTimerWithTimeInterval(2.0, target: self, selector:"removeSP", userInfo: nil, repeats: false)


 }



 func removeSP()


 {


 println(" REMOVE SP")


 self.splashScreen.removeFromSuperview()


 }



 override func didReceiveMemoryWarning()


 {


 super.didReceiveMemoryWarning()


 }


}



ViewController是第一个正在加载的应用程序 VC 。

didFinishLaunchingWithOptions: 委托方法中使用以下行:


[NSThread sleepForTimeInterval:5.0];



它将停止启动屏幕 5.0秒。

...