2012-03-19 20 views
5

Ho una domanda che può sembrare strano, ma essendo un po 'di un novizio, sto indovinando nessuna domanda è una domanda stupida ...storyboard separate per iPhone/iPhone Retina/iPad/iPad Retina

ho bisogno storyboard separati per tutti e quattro i dispositivi?

In questo momento ho due storyboard, uno per iPhone e uno per iPad, ma quello che ottengo il mio frame di visualizzazione mostra sempre le dimensioni del dispositivo, non il dispositivo di retina. Quindi per esempio su iPhone la mia dimensione di visualizzazione è 320x460, e per iPhone Retina mostra lo stesso ... anche per iPad.

Grazie

+0

Non si sbaglia, ci sono un sacco di domande stupide là fuori! Chi dice che non ci sono domande stupide, solo risposte stupide, è un idiota. Questa, comunque, è una bella domanda! – Jake

risposta

5

No, non è così. Sì, è la stessa risoluzione per il punto di vista dello sviluppatore. iOS effettuerà tutte le regolazioni. L'unico problema importante è che se si utilizzano le immagini nel proprio pacchetto di app (come le icone delle schede), è necessario aggiungerne uno per non retrocedere uno per retina (con doppia risoluzione). Ad esempio se hai icon.png di 24x24px, devi aggiungere [email protected] di 48x48px. iOS sostituirà automaticamente l'icona per il nome file "@ 2x" nelle divisioni retina.

+0

Ok, capito. Questo è quello che stavo pensando, ma per le immagini sceglierà sempre il file @ 2x o il file ~ ipad se specificato. Un altro modo per dirlo è, ci sono casi in cui ho bisogno di rilevare il dispositivo e cambiare il nome del file due riferimento a un'immagine diversa? – LilMoke

+0

Non sono sicuro se in runtime verrà rilevata un'immagine che, ad esempio, si scarica. Ma sono sicuro che è possibile specificare l'immagine pronta per la retina quando si rileva un display retina. Questa risposta può aiutarti con il rilevamento http://stackoverflow.com/a/3294120/1014773 – LuisEspinoza

+0

grazie darò un'occhiata. Non stavo parlando di immagini che ho scaricato, solo immagini dal mio pacchetto principale. UIImage sceglierà sempre l'immagine giusta, quella era davvero la domanda. – LilMoke

0

È possibile distinguere il contenuto grafico della vostra applicazione, ma la vista/storyboard per il momento non credo che si può.

Se si vuole sfruttare la risoluzione degli schermi retina è possibile utilizzare il trucco @ 2x.

Questo consiste dei seguenti, diamo l'esempio di applicazione icon_

  • Icon.png (icona predefinita per l'iphone a 57x57 pixel)
  • [email protected] (icona predefinita per l'iPhone con display retina a 114x114 pixel)

  • icona ~ iPad.png (icona predefinita per l'iPad a 72x72 pixel)

  • [email protected] (icona predefinita per la connessione wi ipad th display retina a 144x144 pixel)

Questo trucco è utile per tutti i tuoi contenuti grafici e non richiede codice aggiuntivo quando si creano le interfacce e il codice. Quando devi specificare il file grafico da utilizzare, specifica sempre il file che non ha il "@ 2x".

Spero che sia utile.

+0

Sì, l'esempio per l'icona dell'applicazione è sempre usato ... ma fa questa tecnica funziona tutto il tempo?Funzionerà sempre per un UIImage, o sono i loro tempi in cui dovrò specificare l'immagine corretta? – LilMoke

+0

Funziona sempre e non richiede codice aggiuntivo per cambiare l'immagine. Si fa riferimento solo all'immagine normale e iOS fa il resto;) Se sei interessato scarica questo codice di esempio e lo vedrai in azione: (link) http://www.angeldiaz.es/idec-upf/leccion07/ Esempio37.tar.gz Ricordarsi di cambiare la destinazione del simulatore per vederla funzionante. – angeldiaz

+1

Questo non è sufficiente. Non tutti gli UIImage hanno un nome file associato. È possibile ottenere un UIImage da un contesto grafico e in tal caso è necessario occuparsi della metà/doppia risoluzione dei problemi con il valore di scala. – hariseldon78