Risoluzione dell'immagine per i nuovi iPhone 6 e 6+, aggiunta del supporto @ 3x?


141

Ho esaminato alcuni articoli e discussioni come uno qui e qui sulle risoluzioni delle immagini che i nuovi iPhone useranno le immagini @ 3x per la visualizzazione. È vero?

Quindi significa che dovremo conservare tre immagini? Ad esempio, ho un'immagine di 50 X 50, dovrò conservare 3 immagini per ottimizzare l'aspetto di nuovi iPhone?

  • Normale (50 X 50)
  • @ 2x - Retina (100 X 100)
  • @ 3x - Retina HD (150 X 150)

O i nuovi telefoni useranno solo le immagini @ 2x e non c'è niente come @ 3x?

Ho provato realizzando un progetto di esempio e tutti i simulatori sembrano usare immagini @ 3x, questo è confuso.

modificare

Ecco qualche informazione in più

  • 3GS (163 ppi quindi usa Normal)
  • 4, 4s, 5 e 5s (326 ppi quindi usiamo @ 2x)
  • 6 (326 ppi, quindi sembra che userà @ 2x)
  • 6 plus (401 ppi qui sta la confusione)

modificare

Sulla base delle risposte fornite da Tsob e nitin, ho aggiunto @ 3x immagini al mio progetto.

Modifica informativa

Vedo che pochi utenti sono confusi sul perché iPhone 6 utilizza immagini @ 2x anche se ha una risoluzione più elevata, il motivo è

iPhone 6 potrebbe avere una risoluzione diversa ma ha la stessa densità di pixel per pollice (PPI)

  • La risoluzione riguarda un numero assoluto di pixel.
  • La densità (aka Pixel per pollice - PPI) riguarda un numero relativo di pixel per pollice che è lo stesso nel caso di iPhone 6 e iPhone precedenti, ma diverso in iPhone 6 plus.

Scopri di più qui in questa discussione

Quindi iPhone 6 utilizza l'immagine @ 2x come gli iPhone 4, 5 e 5S poiché ha lo stesso PPI e iPhone 6 plus utilizza @ 3x.


Quindi quale uso di Retina 4 2x, se nessuno dei dispositivi lo utilizza?
Mrunal,

1
Sono d'accordo che la densità è la stessa per iPhone 4, 5 e 6, ma come risolvere i diversi problemi di risoluzione? Quindi è grande differenza 640x960 e 750 × 1334 pixel. Se devo usare un'immagine di sfondo che si sovrappone a tutto lo schermo. Come posso impostare xcasset di immagini in questo caso?
Matrosov Alexander,

@MatrosovAlexander come l'hai risolto?
Mário Carvalho,

come soluzione alternativa ho usato anche l'immagine iphone 6 per l'immagine @ 2x ma è evidente che xcode non ha l'immagine appropriata per questo
Matrosov Alexander,

Risposte:


54

In un progetto di esempio ho provato a utilizzare immagini standard, @ 2x e @ 3x, e il simulatore di iPhone 6+ utilizza l'immagine @ 3x. Quindi sembrerebbe che ci siano immagini @ 3x da fare (se il simulatore replica effettivamente il comportamento del dispositivo). Ma la cosa strana è che tutti i dispositivi (simulatori) sembrano usare questa immagine @ 3x quando si trova sulla struttura del progetto, anche iPhone 4S / iPhone 5.
La mancanza di comunicazione da parte di Apple su una potenziale struttura @ 3x, mentre chiedono agli sviluppatori di pubblicare le loro app iOS8 è abbastanza confusa, soprattutto quando si vedono quei risultati sul simulatore.

** Modifica dal sito Web di Apple **: è stato trovato anche nella sezione "Novità di iOS 8" nello spazio per sviluppatori di Apple:

Supporto per una nuova scala dello schermo L'iPhone 6 Plus utilizza un nuovo display Retina HD con una scala dello schermo di 3.0. Per fornire la migliore esperienza possibile su questi dispositivi, includere nuovi elementi grafici progettati per questa scala dello schermo. In Xcode 6, i cataloghi di risorse possono includere immagini nelle dimensioni 1x, 2x e 3x; aggiungi semplicemente le nuove risorse immagine e iOS sceglierà le risorse corrette quando è in esecuzione su un iPhone 6 Plus. Il comportamento di caricamento delle immagini in iOS riconosce anche un suffisso @ 3x.

Non capisco ancora perché tutti i dispositivi sembrano caricare @ 3x. Forse è perché sto usando file regolari e non xcasset? Ci proverò presto.

Modifica dopo ulteriori test: Ok, sembra che iOS8 abbia un discorso in questo. Durante i test su un simulatore iOS 5 per iPhone 5, utilizza correttamente l'immagine @ 2x. Ma quando si avvia lo stesso su iOS 8 utilizza @ 3x su iPhone 5. Non sono sicuro se si tratti di un comportamento desiderato o di un errore / bug in iOS8 GM o di simulatori in Xcode 6.


2
Sì, ho provato con il simulatore, tutti i dispositivi prendono immagini @ 3x, confondendo davvero
Bhumit Mehta

Quindi, in conclusione, ad oggi il miglior percorso possibile sarebbe utilizzare "@ 2x" nei nomi delle immagini ma in qualche modo il controllo del dispositivo per 6 Plus e l'utilizzo di un'immagine 3x SENZA "@ 3x" per non avvelenare i dispositivi 2x?
darkheartfelt,

Sembra che la scelta 3x su iPhone 6 avvenga solo se la risorsa in questione è JPG anziché PNG.
emreberge,

102

AGGIORNARE:

Nuovo link per la dimensione dell'immagine delle icone per apple.

https://developer.apple.com/ios/human-interface-guidelines/graphics/image-size-and-resolution/

inserisci qui la descrizione dell'immagine


Sì, è vero qui, Apple fornisce la documentazione ufficiale relativa alle dimensioni dell'icona o dell'immagine

inserisci qui la descrizione dell'immagine

devi impostare le immagini per iPhone6 ​​e iPhone6 ​​+

Per iPhone 6:

750 x 1334 (@2x) for portrait

1334 x 750 (@2x) for landscape

Per iPhone 6 Plus:

1242 x 2208 (@3x) for portrait

2208 x 1242 (@3x) for landscape

Per maggiori informazioni su Immagini e sulla sua risoluzione, questo è il post migliore che sia mai stato utile

Per impostare la dimensione delle immagini per i controlli puoi impostare 1x @ 2x e @ 3x come segue:

inserisci qui la descrizione dell'immagine


8
se tutti i dispositivi sono retina 2x o 3x perché il catalogo delle risorse richiede immagini 1x su progetti per il targeting per iPhone solo su iOS 7/8? Non ha senso.
Duck,

1
potrebbe essere quello per iPhone4 @RubberDuck :) vedi che iPad 2 e iPad Mini che hanno bisogno di 1x
Nitin Gohel

scusa ma non hai letto quello che ho scritto. Sto parlando di un progetto solo per iPhone per iOS 7. Non esiste un iPhone con 1x che può eseguire iOS 7 ma il catalogo delle risorse lo richiede ancora.
Duck,

@RubberDuck Seleziona la risorsa immagine e quindi visualizza il riquadro delle utilità sul lato destro di Xcode. Una delle schede ha una serie di caselle di controllo. Forse i tuoi asset hanno troppe caselle di controllo selezionate che danno come risultato la visualizzazione di 1x come opzione.
rmaddy,


10

Ho provato realizzando un progetto di esempio e tutti i simulatori sembrano usare immagini @ 3x, questo è confuso.

Crea diverse versioni di un'immagine nel tuo catalogo delle risorse in modo tale che l'immagine stessa ti dica quale versione è:

inserisci qui la descrizione dell'immagine

Ora esegui l'app su ciascun simulatore a sua volta. Vedrai che l'immagine 3x viene utilizzata solo su iPhone 6 Plus.

La stessa cosa è vera se le immagini sono tratte dal bundle dell'app usando i loro nomi (ad esempio one.png , one@2x.png e one@3x.png ) chiamando imageNamed:e assegnando in una vista immagine.

(Tuttavia, c'è una differenza se assegni l'immagine a una vista immagine in Interface Builder: la versione 2x viene ignorata sui dispositivi a doppia risoluzione. Questo è presumibilmente un bug, apparentemente un bug pathForResource:ofType:.)


1
Hai contrassegnato la risorsa come "universale", quindi perché vedi un comportamento coerente. Prova invece a selezionare "specifico del dispositivo" nel menu a discesa!
Nikolay Spassov,

1
@RalphZhouYuan Ora funziona bene per me. Non vedrai la versione 2x elencata , ma assegna solo la versione 1x e la versione 2x o 3x verrà utilizzata correttamente. Oppure, basta usare un catalogo di risorse.
matt

1
@RalphZhouYuan Ecco il mio esempio scaricabile: github.com/mattneub/Programming-iOS-Book-Examples/tree/master/… - mostra sia l'utilizzo di file di immagine nel pacchetto di app sia i file di immagine nel catalogo delle risorse e funzionano tutti correttamente.
matt

3
@ Matt Alla fine ho scoperto che il mio problema è legato alle destinazione di distribuzione impostazioni (che è 6,0) della mia app.I aperta una domanda: stackoverflow.com/questions/26333278/... e sparò un bug report ad Apple.
inexcii,

1
@RalphZhouYuan Wow, ottimo lavoro investigativo che lo sta rintracciando! Grazie per aver segnalato.
matt

2

ios cercherà sempre di ottenere l'immagine migliore, ma tornerà ad altre opzioni .. quindi se hai solo immagini normali nell'app e ha bisogno di @ 2x immagini, utilizzerà le immagini normali.

se inserisci solo @ 2x nel progetto e apri l'app su un dispositivo normale, ridimensionerà le immagini per visualizzarle.

se scegli come target i dispositivi ios7 e ios8 e desideri la migliore qualità, avresti bisogno di @ 2x e @ 3x per il telefono e normale e @ 2x per le risorse ipad, poiché non è rimasto alcun telefono non retina e nessun ipad @ 3x.

forse è meglio creare le risorse nell'app dall'immagine vettoriale ... controlla http://mattgemmell.com/using-pdf-images-in-ios-apps/


basta usare il fantastico PaintCode per i vettori nelle app
Fattie,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.