Vai al contenuto

Risoluzione dispositivi


Messaggi raccomandati

Ciao a tutti, da poco tempo uso osx e da ancora meno mi sto cimentando nella programmazione con xcode.

Premetto che sto ancora studiando il linguaggio ad oggetti e molte cose ancora mi sfuggono. In passato programmavo in basic e affini ma qui la musica è un'altra.

Sto cercando di creare un giochino per poter prendere pratica con xcode ma ho bisogno che qualcuno mi chiarisca come mai impostando come dispositivo il 4S e selezionando da Storyboard come dimensione 3", l'immagine che ho messo come sfondo va fuori scala.

In pratica devo dimezzarla a 480*320 come se fosse un 3gs.

E se provo a impostare manualmente tutto a 960*640 il simulatore ugualmente ne visualizza solo una porzione.

 

Link al commento
Condividi su altri siti

XCode (e iOS chiaramente) non ragiona per risoluzione, ma bensì per "punti". Tutte le risoluzioni specificate pertanto non sono mai da intendersi come pixel a schermo ma come "punti logici". 

Questo perchè i dispositivi sui quali verrà potenzialmente distribuita la tua applicazioni sono svariati, e con diverse risoluzioni del display.

A runtime poi, i punti logici verranno convertiti in pixel in base al fattore di scala del dispositivo reale.

 

Questo si traduce nel fatto che, se consideriamo come dispositivi la famiglia degli iPhone, hai a disposizione una finestra da 320x480 (w x h) punti logici  (in realtà con iPhone 6 e 6 plus oltre ad una maggiore risoluzione hai pure più punti ma di base per ora ti consiglio di ragionare come se ne avessi 320x480).

Quando inserisci un'immagine, o icona, o altra risorsa grafica devi sempre fornire a XCode la risorsa nei suoi vari fattori di scala, quindi @1x, @2x e ora con gli iPhone 6 plus pure @3x.

 

es°

 

image.png

image@2x.png

image@3x.png

 

Se impiegata da interfacebuilder (quindi dentro un file xib o dentro una storyboard) la risorsa immagine sarà riconosciuta dal nome senza specificato il fattore di scala.

Se invece devi generare un oggetto UIImage da codice, utilizzerai il costrutto UImage(named:), con il nome del file (se l'estensione è .png puoi anche tralasciare l'estensione, altrimenti devi indicarla nel nome).

 

Il consiglio comunque è quello di gestire le immagini tramite Asset Catalog (i file xcasset che viene generato automaticamente ad ogni nuovo progetto), in quanto ti permettono di tenere più in ordine il tutto, oltre ad offrirti diverse funzionalità utili.

 

Comunque in generale ti consiglio di prendere una buona (se non ottima) confidenza con il linguaggio e solo dopo sbattere la testa con le API Cocoa, la creazione di interfacce e tutto quello che ci va dietro

Link al commento
Condividi su altri siti

Grazie per la risposta. Non ho capito tutto quello che hai scritto ma qualcosa ho recepito[emoji6] .

La mia domanda nasceva dal fatto che volevo far muovere un oggetto all'interno dello sfondo. Utilizzando l'immagine a 960*640 avevo i giusti punti di riferimento che ridimensionando non ho.

Link al commento
Condividi su altri siti

Grazie per la risposta. Non ho capito tutto quello che hai scritto ma qualcosa ho recepito[emoji6] .

La mia domanda nasceva dal fatto che volevo far muovere un oggetto all'interno dello sfondo. Utilizzando l'immagine a 960*640 avevo i giusti punti di riferimento che ridimensionando non ho.

 

Se devi muovere/animare un oggetto all'interno della finestra non andrai mai a farlo per pixel. 

Ogni oggetto UIView che vai a manipolare è contraddistinto da un proprio frame e dalla coordinata del suo centro rispetto alla superview. Tutte queste misure e coordinate sono espresse sempre in punti.

Comunque torno a consigliarti di concentrarti prima di tutto sul linguaggio di programmazione che andrai a usare (Swift o Objective-C) e solo poi buttati nel framework (Cocoa Touch).

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...