Xcode permet de créer un écran de lancement dans .xib
fichiers via Interface Builder. Est-il possible d'exécuter du code avec le xib, tout comme dans les contrôleurs de vue habituels? Ce serait formidable si nous pouvions définir différents textes/images/etc lors du lancement de l'application.
Non, ce n'est pas possible.
Lorsque l'écran de lancement est affiché, votre application est en état de chargement.
Même la - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
ne sera pas complètement exécutée tant que l'écran de lancement sera affiché.
Il est donc clair que vous n'avez aucun accès à votre application et donc à ce stade, vous ne pouvez exécuter aucun code.
J'essayais de faire la même chose ici. :)
J'ai vraiment aimé certaines des applications, dans lesquelles ils font un petit texte et une image de salutation dynamique chaque fois que l'application est lancée, comme "Tu as l'air bien aujourd'hui!", "Aujourd'hui c'est vendredi, une journée merveilleuse", etc., qui est très mignon.
J'ai fait quelques recherches, voici comment le faire: (Mon code est XCode 7, avec un fichier launchscreen.xib)
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var customizedLaunchScreenView: UIView?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
application.statusBarHidden = true
// customized launch screen
if let window = self.window {
self.customizedLaunchScreenView = UIView(frame: window.bounds)
self.customizedLaunchScreenView?.backgroundColor = UIColor.greenColor()
self.window?.makeKeyAndVisible()
self.window?.addSubview(self.customizedLaunchScreenView!)
self.window?.bringSubviewToFront(self.customizedLaunchScreenView!)
UIView.animateWithDuration(1, delay: 2, options: .CurveEaseOut,
animations: { () -> Void in
self.customizedLaunchScreenView?.alpha = 0 },
completion: { _ in
self.customizedLaunchScreenView?.removeFromSuperview() })
}
return true
}
// other stuff ...
}
Faites juste ce que vous vouliez montrer, texte, images, animations, etc. à l'intérieur de customLaunchScreenView ici.
À la fin du lancement, il vous suffit de fondre cette UIView personnalisée en utilisant la modification de la valeur alpha, puis de la supprimer complètement.
À quel point cela est cool? J'adore ça!
J'espère que cela aide.
J'essayais également d'y parvenir. J'ai essayé ce qui suit, cela donne un délai de quelques secondes mais fonctionne pour moi.
J'espère que cela aide!