2010-10-06 7 views
1

Je me demande si quelqu'un peut m'aider à suivre. Je l'ai écrit un quartz 2d ap et ont utilisé le code suivant pour obtenir le facteur d'échelle correcte pour chaque appareil:Problème d'adaptation du facteur d'échelle pour le mode de compatibilité de l'iPad x2

if ([UIScreen instancesRespondToSelector:@selector(scale)]) 
{ 
     return [[UIScreen mainScreen] scale]; 
} 
else 
{ 
     return 1.0; 
} 

je puis multiplier toutes les valeurs de ce mulitplier à grande échelle dans mon code. Le problème que j'ai, c'est que l'application ne s'affiche pas correctement en mode x2 sur l'ipad - tout est deux fois trop grand. Quelqu'un peut-il m'aider?

Merci,

Martin

Répondre

2

Le facteur d'échelle est lié aux affichages Retina sur les nouveaux iPhones et iPod touch, et non au réglage d'échelle 2X sur l'iPad. En fait, la propriété UIScreen scale que vous référencez n'existe pas sur la version actuelle du système d'exploitation 3.2 de l'iPad, seulement sur 4.0+. Sur les iPad actuels exécutant la bêta OS 4.2, il devrait toujours retourner 1.0.

Le problème you are experiencing avec le dessin Quartz en mode 2X doit provenir d'un autre endroit. Faites-vous des vérifications spécifiques à l'appareil pour les éléments de votre code?

+2

En fait, le problème est que la propriété scale n'est pas/defined/jusqu'à 4.0, mais elle existe réellement (en tant que propriété non documentée) dans 3.2 et fait quelque chose de différent (affiche l'échelle de dessin pour les applications non-iPad la taille de l'échelle de l'application). Donc, juste tester l'existence de la propriété n'aide pas OP dans ce cas, il doit vérifier que la version est 4.0 ou mieux. –

+0

Bonjour Brad. Merci pour votre réponse. Il n'y a pas de vérifications spécifiques au périphérique dans mon code - je prends simplement la valeur retourne par le dessus et mulitlpy toutes les valeurs x et y par celui-ci. Si je change ce qui précède pour utiliser répond à contentsScaleFactor il fonctionne alors bien sur l'iPad (également en mode x2), mais arrête de travailler sur l'iPhone 4 - tout est la moitié de la taille :( – GuybrushThreepwood

+0

Jason - merci, cela a du sens - l'ipad retourne une valeur de deux donc le fait est que tout est deux fois la taille Comment puis-je résoudre ce problème? – GuybrushThreepwood

1

Je ne sais pas si cela est votre problème, mais vous semblez vouloir tester la UIScreen pour l'échelle de sélection. Ce qu'il n'aura jamais. Ce sélecteur ne fonctionne que sur [UIScreen mainScreen]. Bien que cette erreur vous laisse penser qu'elle retournera toujours une échelle de 1,0.

+0

Utilisez '[[UIScreen mainScreen] respondsToSelector: @selector (displayLinkWithTarget: selector :)]' à la place. L'échelle existe sur les iPads avec iOS <4 mais elle se réfère à l'échelle d'émulation de l'iphone, vous obtiendrez une valeur à laquelle vous ne vous attendez pas. –