2014-11-10 12 views
6

non è sufficiente per fornire solo un'immagine con risoluzione 3x (ad esempio per una vista o un pulsante) in Xcode in modo che appaia bene su iPhone 5,6 e dispositivi 6plus (ovvero lasciando 1x e 2x in un'immagine impostata vuota)È sufficiente fornire l'immagine 3x solo per tutte le versioni su iPhone?

il mio ragionamento è che l'immagine 1x può apparire sfocata su 6 plus, ma immagine 3x dovrebbe guardare bene su 5

Fondamentalmente sto chiedendo in modo che possa comunicare lo stesso al mio grafico e si dovrebbe andare bene con la fornitura di un dimensioni singole invece di tre dimensioni per tutte le immagini

+0

Non capisco questo motivo: se fornisci 1x, 2x e 3x almeno 2x si sta per essere utilizzato dai nuovi iPhone. Potrebbe essere utile se fossimo in grado di fornire solo 3x e lasciare Xcode ridimensionarlo automaticamente, ma personalmente non lo vedo ancora come una funzionalità necessaria. Nota che le app di App Store non possono essere limitate a iPhone 5+ al momento. Ad ogni modo, puoi creare rapidamente un'utilità per il tuo designer o per te stesso per ridimensionare (e rinominare se necessario) tutte le immagini se questo è l'unico problema. –

+0

Sono sicuro che non dovresti fornire alcuna immagine '@ 1x' se le tue applicazioni non funzionano su iPad senza retina. non vi è alcun iPhone non retina supportato da iOS7. – holex

+0

@Fogmeister, in iOS7 +: 1. non è supportato iPod Touch non retina; 2. l'iPhone4S ha un display retina, 3. gli iPad non retina eseguono le app per iPhone in modalità retina e non è possibile ridimensionarli, quindi: per un'app per iPhone in iOS7 +, le immagini '@ 1x' possono essere ignorate completamente . – holex

risposta

8

questo ha chiesto e ha risposto molte volte per quanto riguarda le attività 2x, e la risposta non è davvero cambiato (ma è difficile rintracciare le domande doppie quando sto postando dal mio telefono).

Se spedisci asset con un fattore di scala superiore rispetto al dispositivo di destinazione, verranno visualizzati correttamente. Ma ridimensionarli in tempo reale ha dei costi di prestazioni: usano più memoria, impiegano più tempo per caricarli sulla GPU, richiedono tempo GPU per il rendering. Alcuni di questi costi sono banali, altri no. (Ricorda, un'immagine 2x è 4x i dati di uno 1x, e un'immagine 3x è 2.25x i dati di uno 2x.) E si sommano per ogni immagine nella tua app.

Principalmente, i dispositivi con fattori di scala inferiori sono quelli con meno risorse CPU/GPU/memoria da spendere per il downscaling.

Quindi, cosa fare? Bene, se non vuoi che il tuo artista abbia a che fare con fattori di scala multipli, ordina semplicemente l'artwork 3x e ridimensionalo da solo in Photoshop (o diavolo, anche in Anteprima) prima di spedire. Potrebbe non sembrare bello come se il tuo artista l'avesse ottimizzato per ogni dimensione, ma sembrerebbe altrettanto valido quanto il ridimensionamento in tempo reale senza i costi delle prestazioni in fase di esecuzione.

Oppure, con Xcode 6, è possibile inserire un PDF nel catalogo delle risorse e Xcode genererà automaticamente PNG per ogni dimensione al momento della compilazione. (Questa è una funzionalità Xcode, non iOS, quindi funziona anche se stai puntando su iOS 7.)

0

Il problema con questa idea è che in iOS 8 l'iPhone 4S è ancora supportato e ha un asp diverso rapporto ect rispetto ad ogni altro iPhone. Rende a 320x480 a 2x, quindi creare immagini per adattarle non apparirebbe granuloso. Le altre 3 dimensioni dello schermo funzionerebbero se si utilizza la scala 3x che sarebbe di 1920x1080 per ogni pagina e si ridurrebbe solo la dimensione per gli schermi 4in e 4.7in. Probabilmente avrai bisogno di 2 story board per l'app (una per 3,5 pollici e l'altra per le altre 3 dimensioni dello schermo). Il dimensionamento automatico non funzionerebbe in questo caso, a meno che tu non abbia cambiato l'immagine di UIImage perché avrebbe una lunghezza ridotta pur mantenendo la stessa larghezza.

EDIT: cambiato le dimensioni dello schermo iPhone 6+ per tenere conto del 1.15x giù ridimensionamento e ha cambiato il fattore di rendering per abbinare il commento qui sotto

+2

iPhone 4s è un display Retina 2x, non 1x. L'ultimo iPhone non Retina è il 3GS, non supportato da iOS 7. – rickster