Xcode consente di creare la schermata di avvio nei file .xib
tramite Interface Builder. È possibile eseguire qualche codice con lo xib, proprio come nei soliti controller di visualizzazione? Sarebbe bello se possiamo impostare diversi testi/immagini/ecc durante l'avvio delle app.Esegui codice nella schermata di avvio
risposta
No, non è possibile.
Quando viene visualizzata la schermata di avvio, l'app sarà in stato di caricamento.
Anche il - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
non verrà eseguito completamente mentre è visualizzata la schermata di avvio.
Quindi è chiaro che non si ha accesso alla tua app e quindi a questo punto non è possibile eseguire alcun codice.
Grazie per la risposta. Quindi il lancio di xib è stato caricato da iOS, non dall'app. Purtroppo, perché ho pensato di mostrare diversi saluti con lanci diversi. – Dmitriy
@Dmitriy: Purtroppo non è possibile, solo l'immagine di lancio è sostituita da un lancio xib. L'unico vantaggio è che puoi progettare su di esso. Ma non è possibile eseguire alcun codice. –
È possibile, l'ho appena capito. controlla la mia risposta qui sotto. – RainCast
Stavo cercando di fare la stessa cosa qui. :)
Mi sono piaciute alcune app in cui fanno un po 'di testo e di immagini dinamici ogni volta che viene lanciata l'app, come "Sei bella oggi!", "Oggi è venerdì, una giornata meravigliosa ", ecc., che è molto carino.
ho fatto qualche ricerca, sotto è come farlo: (il mio codice è XCode 7, con un file 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 ...
}
Basta fare ciò che mai si voleva mostrare, testo, immagini , animazioni, ecc. all'interno dello personalizzatoLaunchScreenView qui.
Alla fine dell'avvio, basta attenuare questo UIView personalizzato utilizzando la modifica del valore alfa, quindi rimuoverlo completamente.
Quanto è bello? Lo adoro assolutamente!
Spero che aiuti.
didFinishLaunchingWithOptions viene chiamato al termine del caricamento dell'app, quindi dopo che è stata visualizzata la schermata di avvio. Capisco perché uno vorrebbe una transizione personalizzata prima di entrare nell'app ma questa non è una schermata di avvio personalizzata in alcun modo. –
Quindi non è la risposta esatta alla domanda .. ma è molto utile .. un bel workaround – Yitzchak
Stavo anche cercando di raggiungere questo obiettivo. Ho provato quanto segue, dà un ritardo di un paio di secondi ma funziona per me.
- Creare e impostare una schermata di avvio nelle impostazioni del progetto.
- Creare un controller di visualizzazione con classe personalizzata (SplashViewController) e impostarlo come controller di visualizzazione iniziale nello storyboard.
- Aggiungi una vista contenitore e impostala a schermo intero.
- Imposta i passaggi incorporati in uno Storyboard di riferimento.
- Seleziona Reference Storyboard e imposta la schermata di avvio nella proprietà StoryBoard da Attribute inspector.
- Fai tutto ciò che vuoi in SplashViewController (riproduci animazione o controllo di sessione ecc.) Ed esegui i passaggi quando hai finito.
Spero che aiuti!
Pensa a ** perché ** la schermata di avvio è lì. – zaph
@Zaph Capisco PERCHE '. Ma dall'altra parte, se voglio mostrare solo un saluto casuale dalla lista definita, non ci vorrà nulla per iOS. – Dmitriy
È sempre possibile aggiungere un controller di visualizzazione iniziale che visualizza la stessa immagine della schermata di avvio e aggiungere i propri auguri. – rdelmar