J'ai mis image
in imageView
dans LaunchStoreyboard
. Comment puis-je retarder le temps de l'image par programme? toute aide sera très appréciable.
Voici le Directives concernant l’écran de lancement d’Apple
Voici le code pour le contrôleur de vue de l'écran de lancement
import UIKit
class LaunshViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.delay(0.4)
}
func delay(_ delay:Double, closure:@escaping ()->()) {
let when = DispatchTime.now() + delay
DispatchQueue.main.asyncAfter(deadline: when, execute: closure)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Mettez une ligne de code dans la classe AppDelegate -
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
Thread.sleep(forTimeInterval: 3.0)
// Override point for customization after application launch.
return true
}
Ne recommanderais pas de mettre toute l'application dans un état d'attente. Si l'application doit effectuer plus de travail avant de terminer le programme de surveillance, l'application pourrait être trop longue à démarrer.
Au lieu de cela, vous pourriez faire quelque chose comme ceci pour retarder l'écran de lancement.
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
window = UIWindow(frame: UIScreen.main.bounds)
window?.rootViewController = UIStoryboard(name: "LaunchScreen", bundle: nil).instantiateInitialViewController()
window?.makeKeyAndVisible()
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 3) {
self.window?.rootViewController = UIStoryboard(name: "Main", bundle: nil).instantiateInitialViewController()
}
return true
}
Swift 4.x
Il estTRÈSbonne pratiquePASde mettre votre application en veille!
Le démarrage de votre application doit être aussi rapide que possible. Par conséquent, vous ne souhaitez pas utiliser le délai de l'écran de démarrage.
Mais, au lieu de sleep , vous pouvez exécuter une loop
au cours de laquelle le récepteur traite les données de toutes les sources d’entrée attachées:
Cela prolongera le temps de visibilité de l'écran de lancement.
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
RunLoop.current.run(until: NSDate(timeIntervalSinceNow:1) as Date)
return true
}
Créez un ViewController et utilisez NSTimer pour détecter le délai. et quand le chronomètre se termine Appuyez sur le premier UIViewcontroller.
Dans la méthode ViewDidLoad ..
[NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(fireMethod) userInfo:nil repeats:NO];
-(void)fireMethod
{
// Push view controller here..
}