2015-10-02 16 views
6

Ho creato un nuovo progetto in Xcode 7 utilizzando Swift. Ho notato che la schermata di avvio è memorizzata nel file storyboard.Animazione personalizzata nella schermata di avvio

Quindi penso che potrebbe essere personalizzato riferendolo al mio CustomLauchScreenViewController. Tuttavia, quando ho impostato il nome della classe personalizzata in LaunchScreen.storyboard, si genera un errore:

Launch screens may not set custom classnames

Allora, qual è il modo migliore per personalizzare il LaunchScreen? Intendo utilizzare LaunchScreen per caricare alcuni dati prima di avviare la schermata principale.

+1

qualcosa come i giochi di re (Candy, Soda, Digger ecc.) Utilizzare un'immagine per splash (immagine di lancio). Quando hai il controllo carica un VC che ha il tuo lavoro personalizzato (animazioni o immagini secondarie) e infine carica la tua applicazione. –

risposta

10

Questo non è lo scopo della schermata di avvio. Cosa puoi fare se hai la tua prima visione iniziale? Comandi 'agisci' come una schermata di avvio. Basta che visualizzi la stessa immagine dell'immagine di lancio e faccia quello che devi fare lì dentro. Una volta terminato, spostati nella tua viewController principale da lì.

+0

Quindi, la schermata di avvio non viene utilizzata per preparare alcuni dati predefiniti prima di avviare la schermata principale? Se è così, il termine "schermata di avvio" è del tutto inutile. – chipbk10

+2

Beh, per un certo senso lo è; ma non per il nostro codice, per il codice di avvio di Apple. Se vogliamo che il nostro codice funzioni, prima che l'app principale abbia inizio; dobbiamo fare come ho suggerito sopra. – Tander

+0

In tal caso, dovrei eliminare tutti i file generati, gli attributi relativi alla "schermata di avvio" nel mio progetto. – chipbk10

2

La schermata di avvio viene visualizzata prima che l'app inizi l'esecuzione per fornire una transizione dalla Springboard alla tua app durante il caricamento. Secondo le linee guida interfaccia di Apple,

A launch file (or image) provides a simple placeholder image that iOS displays when your app starts up. The placeholder image gives users the impression that your app is fast and responsive because it appears instantly and is quickly replaced by the first screen of your app.

per ottenere una transizione, rimuovere la classe dalla LaunchScreen.storyboard e impostarlo simile a 0% di transizione di carico. Crea un nuovo controller nel tuo Main.storyboard e imposta CustomLauchScreenViewController lì e assegnalo come controller di visualizzazione iniziale. Impostare CustomLauchScreenViewController come controller della vista radice nel delegato dell'app. Quando la schermata di avvio verrà sostituita dal tuo controller, la transizione sarà troppo semplice per rilevare eventuali differenze. Dopo aver caricato i dati, modificare il controller della vista radice sul controller di visualizzazione richiesto.

+0

Ho impostato CustomLaunchScreenViewController nello storyboard e causa un errore. Se si legge la risposta di Tander, la schermata di avvio non viene utilizzata per caricare i dati. Se il caricamento dei dati richiede più tempo del tempo della transizione, cosa succederà? – chipbk10

+0

Non è possibile impostare alcuna classe in LaunchScreen.storyboard. Imposta controller simile come controller di visualizzazione iniziale in Main.storyboard. Ho aggiornato la risposta. –

+0

se la schermata di avvio è solo per una transizione fluida, quindi non ne ho bisogno. Creerò un altro UIViewController nello storyboard per la cosa di setup prima di passare al viewcontroller principale. Eliminerò tutte le ridondanze relative a "launchscreen". Grazie. – chipbk10

Problemi correlati