2015-02-19 11 views
13

Domanda:
ci sono modi per animare qualsiasi cosa all'interno del file LaunchScreen.xib di un 6 Progetto Xcode mirato a distribuire per iOS 8.1+?Posso Animare un'immagine iOS 8 LaunchScreen.xib


Contesto:
che sto cercando di fare semplici animazioni per trasmettere l'attività o servire come una distrazione per l'utente mentre aspettano ...


Esempi:

  • A Loading Bar
  • Indicatore attività
  • Animated GIF
  • spostare un UIImage sullo schermo
  • ruotare un'immagine

risposta

25

Nope.

L'immagine di avvio viene visualizzata solo durante il periodo di tempo che intercorre tra quando l'utente sceglie di avviare l'app e quando l'app è stata effettivamente avviata. Durante questo periodo, la tua app non può intraprendere alcuna azione come l'esecuzione di un'animazione - non è ancora in esecuzione. L'immagine di lancio è solo un'immagine statica che, se ben progettata, aiuta a dare all'utente la sensazione che l'app sia pronta rapidamente.

(Alcuni sviluppatori ignorano the HIG e utilizzano l'immagine di avvio per fornire una schermata iniziale, a volte con una presentazione animata, ma in questi casi, la schermata di avvio è ancora un'immagine statica e l'animazione si verifica quando l'app inizia a funzionare - è solo che il primo fotogramma di animazione disegnato dall'app in esecuzione corrisponde all'aspetto dell'immagine di avvio statica.)

Questo comportamento non è cambiato con la funzione LaunchScreen.xib in iOS 8 - appare ancora solo prima del tuo l'app è attualmente in esecuzione, quindi è ancora un'immagine statica. Ciò che ti offre la funzione LaunchScreen.xib è la capacità di produrre in modo adattativo un'immagine di lancio per diverse dimensioni e stili di dispositivi diversi senza dover progettare, rendere e spedire separatamente nell'app le immagini diverse per ogni dimensione/orientamento/ecc.

Se la tua app non è effettivamente pronta per l'uso quando guadagna il controllo, pensa se le attività di "caricamento" che stai facendo in quel momento devono essere eseguite immediatamente o se puoi consentire all'utente inizia a fare alcune cose subito e fai più lavoro di setup su un thread in background o differisci fino a quando non è effettivamente necessario.

13

Non faccio uso di schermate di avvio spesso, ma quando lo faccio, voglio loro di aprire come un libro.

In verità, io non sono un grande fan di schermate iniziali e anche Apple raccomanda di utilizzare un Default.png che mostra i controlli (senza testo) dell'applicazione:

visualizzare un'immagine di lancio che da vicino assomiglia alla prima schermata dell'applicazione. Questa pratica riduce il tempo di avvio percepito della tua applicazione.

Evitare di visualizzare una finestra Informazioni o una schermata iniziale. In generale, cerca di evitare di fornire qualsiasi tipo di esperienza di avvio che impedisca alle persone di utilizzare immediatamente la tua applicazione.

da linee guida HIG

Tuttavia, alcune persone li amano e un app, in particolare, ha un bel schermo implementazione splash - Percorso 2.0. Quando apri Path, sei accolto con il loro logo su una versione rossa della texture di lino di Apple che si anima aperta come un libro (o un diario perché è quello che Path considera essere).

si può ottenere la fonte di questo progetto qui: https://github.com/jaysonlane/OpenBook

Prima di iniziare, Lasciatemi prefazione questo con un disclaimer: Sono molto nuovo alle animazioni a Cocoa in modo da portare con me. Se noti codice non necessario o inefficiente, lascia un commento e io lo sistemo.

Se non hai visto l'animazione, sali sull'app store e prendine una copia per vedere cosa stiamo cercando di realizzare. Ho creato un png predefinito che possiamo usare con intelligenza dal titolo Math (come un libro di matematica che si apre, giusto?). Puoi scaricarlo qui (retina) e qui.

Per iniziare, lascia che ti spieghi "l'inganno" dietro ciò che faremo: useremo il normale sistema predefinito di splash in atto per visualizzare il nostro file default.png. Nel Delegato app, una volta che l'applicazione ha terminato il lancio, creeremo UIImageView in cima alla nostra vista di default.png. Animeremo quindi UIImageView, per ruotare l'apertura per rivelare la nostra vista.

Così andiamo:

Creare un nuovo progetto, ho creato uno utilizzando il modello di vista unico, ma questo funzionerà con qualsiasi. Vai avanti e imposta i tuoi file default.png e [email protected] alle immagini fornite. È possibile farlo cliccando il progetto nel pannello di navigazione a sinistra, fare clic sul Target e scorrere verso il basso per lanciare le immagini:

Aprire l'AppDelegate.m e aggiungere il seguente codice all'applicazione funzione didFinishLaunching o applicazione didFinishLaunchingWithOptions:

//1. add the image to the front of the view... 
UIImageView *splashImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)]; 
[splashImage setImage: [UIImage imageNamed:@"Default"]]; 
[self.window addSubview:splashImage]; 
[self.window bringSubviewToFront:splashImage]; 

//2. set an anchor point on the image view so it opens from the left 
splashImage.layer.anchorPoint = CGPointMake(0, 0.5); 

//reset the image view frame 
splashImage.frame = CGRectMake(0, 0, 320, 480); 

//3. animate the open 
[UIView animateWithDuration:1.0 
         delay:0.6 
        options:(UIViewAnimationCurveEaseOut) 
       animations:^{ 

        splashImage.layer.transform = CATransform3DRotate(CATransform3DIdentity, -M_PI_2, 0, 1, 0); 
       } completion:^(BOOL finished){ 

        //remove that imageview from the view 
        [splashImage removeFromSuperview]; 
       }]; 

Tre cose stanno accadendo qui ...

1) creiamo un nuovo UIImageView e aggiungerlo alla parte superiore della vista 2) Abbiamo fissato un punto di ancoraggio sul lato sinistro dell'immagine per renderla apri da sinistra e quindi reimposta il fotogramma alla dimensione completa del vie w 3) Animiamo UIImageView e lo rimuoviamo dalla vista al completamento

Ecco, è così semplice.

Fonte

: http://jaysonlane.net/tech-blog/2012/03/path-2-0-style-animated-splash-screen-default-png/

+1

Questo è un riferimento a un tutorial di Splash Screen ... La mia domanda In particolare chiede se c'è un modo per animare qualsiasi cosa all'interno del file LaunchScreen.xib usato al posto di un'immagine di lancio iniziale di un progetto Xcode 6 destinato a deploy per iOS 8.1 o versione iOS più grande ... – JThora

+0

Hai fatto un buon lavoro scrivendo questo. +1 – Cesare

0

È possibile creare LaunchScreen.xib e quindi creare una replica perfetta su cui è possibile inserire il codice e disporre di una classe come LaunchScreenAnimator che è possibile chiamare dal proprio delegato e che dispone di un delegato per dirvi quando l'animazione è finita