2013-02-23 12 views
5

Sto sviluppando un'applicazione universale. Voglio sapere che le risoluzioni dello schermo (320 * 480) per iphone e (768 * 1024) in iPad funzioneranno con tutti gli iphone (iPhone 3g, iPhone4 ecc.) e tutti gli iPad.Perché in base a queste risoluzioni dello schermo ho impostato textField, la larghezza di UILabel sia in iPhone che in iPad. Funzioneranno per retine e nonretine?Risoluzione schermo iPhone e iPad

risposta

15

Gli iPhone e gli iPad Retina utilizzano lo stesso sistema di coordinate dei dispositivi non Retina. Attualmente tutti gli iPad hanno uno spazio di coordinate logiche di 768x1024 e tutti gli iPhone tranne l'iPhone 5 hanno uno spazio di coordinate logico di 320x480. Il tuo codice dovrebbe funzionare bene su entrambi i dispositivi Retina e non Retina.

Su un iPhone 5, la tua app verrà visualizzata con barre nere nella parte superiore dello schermo, a meno che tu non dica a iOS che vuoi utilizzare lo schermo intero includendo un file Default.png per la risoluzione dello schermo estesa.

È possibile controllare la risoluzione dello schermo con [[UIScreen mainScreen] bounds]. Questo valore sarà lo stesso sui dispositivi Retina e non Retina. È possibile rilevare un dispositivo Retina controllando il valore di [[UIScreen mainScreen] scale]; il valore qui è il numero di pixel fisici per unità di spazio di coordinate logiche (1.0 per non Retina, 2.0 per Retina).

+0

Sì ho messo lo stesso 768x1024 per iPad e 320x480 (per iPhone) .Si significa che nessun'altra cordinate per retina e nonretina .Does si fanno differenza di orientamento (verticale e orizzontale)? E che dire di iPhone5? Dovrebbe Cambio di nuovo il codice per le sue specifiche? –

+1

Hai un sacco di domande distinte qui. Suggerisco di iniziare leggendo la documentazione di Apple su UIViewController: http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html, che copre molti di questi argomenti. –

1

UIKit e CoreGraphics funzionano con punti anziché pixel.

Entrambi i dispositivi retina e non retina hanno lo stesso numero di punti, ma una diversa quantità di pixel. Ciò significa che gli stessi valori in punti possono significare un valore di pixel diverso su dispositivi diversi.

Per rispondere alla tua domanda, sì lo stesso layout UILabel larghezza mostrerà lo stesso sui dispositivi retina e non retina.

da Apple Developer Documentation:

In iOS, all coordinate values and distances are specified using floating-point values in units referred to as points. The measurable size of a point varies from device to device and is largely irrelevant. The main thing to understand about points is that they provide a fixed frame of reference for drawing.

Dai un'occhiata alla sezione Punto contro Pixel nella guida visualizza programmazione: http://developer.apple.com/library/ios/documentation/windowsviews/conceptual/viewpg_iphoneos/WindowsandViews/WindowsandViews.html#//apple_ref/doc/uid/TP40009503-CH2-SW15

-1

È sempre possibile utilizzare le funzionalità per ottenere il Sistema operativo e fai ciò che ti serve per la tua interfaccia.

var pattern:RegExp = /iphone5/i; 
var str:String = Capabilities.os; 

if (str.search(pattern)==0) 
{ 
    trace('iPhone5 Detected. Alter height.'); 
}else{ 
    trace('No need to change dimensions if developing at 960x640'); 
}