2012-02-08 7 views
16

Secondo la linea guida di Apple, la schermata di avvio/splash di un'applicazione di un'iPhone dovrebbe essere un'immagine statica prerenderata che assomiglia alla prima schermata dell'applicazione.Come posso creare facilmente un'immagine di avvio per iPhone?

Qui ci sono alcuni link a documentazione di Apple su questo:

1) Lanciare immagini, iOS Human Interface Guidelines:

https://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/MobileHIG/IconsImages/IconsImages.html#//apple_ref/doc/uid/TP40006556-CH14-SW5

2) App Launch (Default) Immagini, guida iOS programmazione app :

https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/App-RelatedResources/App-RelatedResources.html#//apple_ref/doc/uid/TP40007072-CH6-SW12

mi chiedo come posso creare tale imag lancio e facilmente. Nella maggior parte dei casi, sembra che l'immagine di avvio debba essere una combinazione di barra di stato vuota + barra di navigazione + tabella/vista vuota + barra delle schede, e ciascuno di essi dovrebbe essere visualizzato con la combinazione di colori predefinita di iOS.

Ma non riesco a trovare alcuna documentazione su come dovrei fare questo e non riesco a trovare alcuna voce in Xcode che sembra correlata a questo. C'è uno strumento ufficiale di Apple per rendere l'immagine di lancio facilmente? Oppure tutti gli sviluppatori di app usano semplicemente alcuni comandi per iPhone mockup + Photoshop per farlo?

Qualsiasi aiuto è apprezzato. Grazie.

risposta

14

Non sarebbe un grosso problema, comporre un file XIB statico della schermata principale (barra delle schede vuota, barra di navigazione vuota) o qualsiasi altra cosa. Solo gli sfondi senza elementi o etichette posizionati su di essi.

È possibile avviare questa applicazione "vuota" in iPhone Simulator che ha una funzione di screenshot incorporata. Con software aggiuntivo come lo iPhone Simulator Cropper puoi ritagliare l'immagine nella dimensione preferita.

Questo sarebbe il mio approccio per farlo.

+1

Mi sono ritrovato con una soluzione simile, ma sto usando lo storyboard di Xcode 4.2 quindi c'è un po 'di differenza. Si prega di vedere la mia risposta qui sotto.E grazie per il collegamento a iPhone Simulator Cropper, non so mai prima ci sia uno strumento del genere. – nybon

+0

Questo è quello che faccio. Ho un progetto nel mio spazio di lavoro appositamente per questo e lancio l'app nel simulatore per ogni dispositivo e orientamento che il file XCAssets ha bisogno. Una cattura, che sembra nuova per Xcode 7, è necessario ridimensionare la finestra del simulatore al 100% (Comando 1) quando si cattura lo screenshot (Comando S) per ottenere la dimensione corretta dell'immagine. –

1

La soluzione più semplice per le tue esigenze: lancia la tua applicazione, fai uno screenshot dello stato iniziale (home + pulsante di accensione sul dispositivo) e voilà! Hai un bel file png contenente lo stato dell'app iniziale con la combinazione di colori di Apple, se necessario.

+1

Ma lo screenshot sarà lo stesso della schermata iniziale della mia app e l'utente potrebbe considerare che l'app è completamente caricata, ma ovviamente non è e non può rispondere all'azione dell'utente in quel momento. – nybon

+0

Puoi personalizzare un lancio speciale della tua app solo per ottenere questo aspetto: assicurati che tutti gli elementi di dati siano vuoti, ad esempio o nascondi alcuni elementi tramite IB – Stavash

+0

Inoltre, se la barra di stato è presente, non sarà buona .. Devo ritagliarlo –

1

I ifdef out la mia origine dati in una build di debug in modo che l'app si avvii vuota, quindi la costruisca ed esegua e faccia uno screenshot dell'app vuota. Per suggerire che l'utente aspetti un po ', potrei usare Photoshop per sovrapporre l'immagine del mio marchio o qualche logo splash che in parte blocca il controllo più ovvio. Se si tratta di un'app divertente, potrei anche animare una copia di quelle icone del logo quando l'app inizierà a funzionare.

7

Dal momento che trovo scomodo rimuovere il contenuto nel file pennino, utilizzo un approccio al codice.

Il codice è diverso per ogni progetto. Ma avrai l'idea.

// uncomment to take a screenshot for the launch image 
//#define SCREENSHOTMODE 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    /* regular stuff */ 
#ifdef SCREENSHOTMODE 
     self.navigationItem.leftBarButtonItem = nil; 
     self.navigationItem.rightBarButtonItem = nil; 
     self.title = nil; 
     [self deactivateContentForSubviewsInView:self.view]; 
#endif 
} 


#ifdef SCREENSHOTMODE 
- (void)deactivateContentForSubviewsInView:(UIView *)contentView { 
    for (UIView *aView in contentView.subviews) { 
     if ([aView isKindOfClass:[UILabel class]]) { 
      [(UILabel *)aView setText:nil]; 
     } 
     else if ([aView isKindOfClass:[UITableView class]]) { 
      [(UITableView *)aView setDataSource:nil]; 
     } 
     else if ([aView isKindOfClass:[UIToolbar class]]) { 
      [(UIToolbar *)aView setItems:nil]; 
     } 
     else if ([aView isKindOfClass:[UIImageView class]]) { 
      [(UIImageView *)aView setImage:nil]; 
     } 
     else if ([aView isKindOfClass:[UIView class]]) { 
      // i often put views in UIViews to group them 
      [self deactivateContentForSubviewsInView:aView]; 
     } 
    } 
} 
#endif 

Se si dispone solo di una manciata di oggetti, è possibile rimuovere direttamente il contenuto degli elementi dell'interfaccia utente. Senza loop.

+0

Questa è un'idea molto interessante. Non pensarci prima. – nybon

7

Sembra che non ci sia uno strumento simile in Xcode per questo. Ho finito con un metodo come Sebastian Wramba ha detto sopra con una piccola differenza. Ho usato Xcode 4.2 storyboarding per la progettazione dell'interfaccia utente della mia app, ecco i miei passi per farlo in Xcode 4.2 storyboard:

  1. Trascinare una vista di controllo vuota dalla "libreria di oggetti" al storyboard

  2. Aggiungi vuote navigazione vista bar/tavola/Tab Bar/altri componenti per la nuova scena di cui sopra secondo la vostra layout iniziale dello schermo

  3. Fare clic sul controller di visualizzazione nello storyboard, in "Impostazioni Ispettori" del controller di visualizzazione, c'è una casella denominata "Scena iniziale: è controller di visualizzazione iniziale". Controllalo.

  4. Avvia l'app in Xcode, la schermata iniziale della tua app sarà impostata su quella appena creata. Fai uno screenshot e usalo come immagine di lancio.

  5. Imposta la scena iniziale sulla scena iniziale reale controllando la casella di controllo "Scena iniziale".

sarò ancora Contrassegno di Sebastian Wramba come la risposta alla mia domanda dal momento che l'idea generale è la stessa, basta creare un apposito interfaccia utente in Xcode per esso.

+0

+1 Buona aggiunta allo scenario storyboard! –

0

Più facile ancora di così. Apri l'immagine che vuoi mettere come schermata iniziale sul telefono. Salva l'immagine sul tuo rullino fotografico. Apri l'immagine nel tuo rullino fotografico. Tocca l'immagine per ottenere una visualizzazione a schermo intero. Fai una schermata. Invia quell'immagine, via email al tuo computer. Cambia la fine del file da PNG a png, fa schifo lo so :) Aggiungi l'immagine alla tua area Immagine di lancio. Walla! ;)

0

È possibile utilizzare gli XIB dello schermo di lancio di iOS 8 per generare immagini di avvio statiche tramite il simulatore, che potrebbe essere necessario eseguire se si supporta iOS 7 o versioni precedenti.

  1. Creare una schermata di avvio XIB.
  2. Selezionare il progetto stesso nel navigatore di progetto Xcode e quindi in Generale> Informazioni di distribuzione cambiare il campo Interfaccia principale nella schermata di avvio XIB. Questo passaggio lascerà la schermata di avvio XIB nel simulatore in modo da avere il tempo di scattare una schermata nel passaggio 4.
  3. Avviare l'applicazione nel simulatore.
  4. Una volta visualizzata la schermata di avvio nel simulatore, selezionare File> Salva schermata.

Ripetere questa procedura per ciascun dispositivo che è necessario supportare. Potrebbe essere necessario utilizzare un editor di immagini per rimuovere la barra di stato dalla schermata.

0

posso impostare tutto quanto sopra. tuttavia non ha funzionato di nuovo durante il debug. Rimuovo l'app dal simulatore e dall'iPhone e ho lavorato subito

Problemi correlati