2010-11-09 37 views
1

Je crée une application iPhone, qui se déroulera sur l'iPhone 3 et iPhone 4.App fonctionnant sur iPhone 4 a une résolution 320x480 au lieu de 640x960

À ce moment-là, je tentais de faire les images adapter à la résolution, mais il s'avère que même en cours d'exécution sur l'iPhone 4, la taille de ma fenêtre est de 320x480.

Sur le XIB j'ai spécifié "fullscreen au lancement" et pour le ViewController j'ai même spécifié "Veut plein écran", mais je ne peux jamais l'obtenir pour reconnaître la résolution réelle.

Ai-je raté quelque chose?

Répondre

2

Est-ce qu'il fonctionne en plein écran sur votre iPhone 4? (Je ne veux pas dire quelle résolution est signalée, je veux dire qu'il y a des barres noires autour de l'application - je parie qu'il n'y en a pas). IOS est «magique» en ce sens que vous ne faites que gérer les choses de taille iPhone 3, c'est-à-dire xibs, etc. et que vous l'ajustez correctement sur l'iPhone 4. Vous verrez toujours la plus petite résolution lorsque vous interrogez l'écran.

Pour obtenir des images pour charger la résolution correcte il suffit de créer deux versions à savoir

myImage.png [email protected]

Faire la seconde exactement deux fois la taille de la première et l'iPhone fera le reste.


PS Il y a une propriété qui a été ajoutée à l'échelle appelée UIImageView - c'est comment l'iPhone sait comment grand pour rendre une image - un look at the docs here.

+0

Je vois. Donc, mes images sources sont déjà 2x, même si elles ne sont pas nommées de cette façon. J'applique en fait un facteur de réduction d'échelle lors de l'insertion des images. Le problème est que je voudrais enregistrer la vue actuelle sur les photos enregistrées, mais quand je fais cela, il enregistre une image de 320x480, au lieu de la pleine qualité. – Andre

+0

C'est bizarre - je m'attendrais à ce qu'il enregistre à la bonne résolution. Je n'ai aucune expérience de la sauvegarde des photos mais je posterais une autre question (y compris le code que vous utilisez) sur le débordement de la pile - il y a probablement quelqu'un d'autre qui peut vous aider! – deanWombourne

+0

@Andre - Utilisez-vous UIGraphicsBeginImageContext() pour prendre l'instantané? Sur un affichage Retina, vous devez utiliser UIGraphicsBeginImageContextWithOptions() et définir le facteur d'échelle sur 0.0 pour prendre en compte le facteur d'échelle de l'affichage. Cela devrait créer un bitmap qui correspond à la résolution de l'écran de votre fenêtre d'application. –