2010-07-18 10 views
5

mi sto un po 'confuso su come utilizzare il simulatore per creare applicazioni che devono supportare la nuova risoluzione più alta di iPhone 4.display retina di Iphone nel simulatore

vorrei tranne quando si seleziona il simulatore iphone4 eseguire l'app su quello [[UIScreen mainScreen] bounds] mi restituirebbe 960x640, ma invece mi restituisce comunque la vecchia risoluzione (480x320)?

Sebbene il simulatore iphone4 appaia come un gigantesco telefono sul mio schermo, sembra che sia ancora composto solo da 480x320 pixel. Ad esempio, quando vorrei mostrare qualcosa sulla linea 700, cadrebbe semplicemente sullo schermo?

Grazie per qualsiasi input su questo.

risposta

8

UIScreen ha un nuovo metodo scale. Moltiplicare i limiti della dimensione per ottenere i pixel. Puoi pensare a valori non graduati come punti o pixel virtuali.

Si noti che UIScreen ha avuto un metodo di scalabilità da almeno 3,2 ma è stato documentato solo a partire dal 4.0, quindi responseToSelector ti ingannerà. Controllo la scala di UII anche quando voglio sapere di UIScreen.

UIScreen *mainScreen = [UIScreen mainScreen]; 
CGFloat scale = [mainScreen scale]; 
CGRect bounds = [mainScreen bounds]; 
CGRect pixels = bounds; 

if (scale > 0) { 
    pixels.origin.x *= scale; 
    pixels.origin.y *= scale; 
    pixels.size.width *= scale; 
    pixels.size.height *= scale; 
} 
+0

Thx per la vostra risposta. Qualche possibilità di rispondere anche alla mia seconda domanda? – Oysio

4

Per quanto riguarda la tua seconda domanda sulla risoluzione, forse questo ti aiuterà.
Da iOS4 e versioni successive ci sono pixel, punti e fattori di scala.

[[UIScreen mainScreen] bounds] 

bounds will return points (480x320) non pixel (960x640).
iOS4 Application Programming Guide (punti contro pixel):

In iOS 4 e successive, l'UIScreen, UIView, UIImage, e CALayer classi espongono un fattore di scala che ti dice il rapporto tra punti e pixel per quello oggetto particolare. Prima di iOS 4, questo fattore di scala era assunto 1.0, ma in iOS 4 e in seguito potrebbe essere 1.0 o 2.0, a seconda della risoluzione del dispositivo sottostante . In futuro, altri fattori di scala potrebbero anche essere possibile.

+0

Sto raggiungendo l'intera scala come 0 nel simulatore. Qualche commento? –