Question

Doublon possible :
iOS 5.1 avec Xcode 4.2 et Retina sur iPad 3

J'essaie de charger mon application sur l'iPad 2 (car elle fonctionne très bien sur l'iPad 3).J'ai réduit l'échelle des images et j'ai maintenant 2 ensembles d'images comme :image.png et image@2x.png.Quand j'essaye de charger l'image avec :

someImageView.image = [UIImage imageNamed:@"image.png"];

Ou via l'IB, cela ne me donne pas le résultat que j'attendais (comme choisir la bonne version de l'image en fonction de l'affichage de l'iPad comme indiqué ici) et affiche uniquement le fichier image.png, quel que soit l'iPad qui exécute l'application, mais lorsque j'essaie d'importer l'image via :

NSString* imagePath = [[NSBundle mainBundle] pathForResource:@"image" ofType:@"png"];
UIImage* someImage = [[UIImage alloc] initWithContentsOfFile:imagePath];
someImageView.image = someImage;

Cela fonctionne très bien et lorsque j'exécute l'application sur iPad 3, elle utilise le fichier png @2x.Bien que cela fonctionne, je ne suis pas sûr de devoir allouer et libérer chaque image que j'utilise, car j'utilise certaines images via IB.Est-ce un comportement normal ?

J'ai utilisé les SDK 4, 4.2 et 5 mais rien n'a changé, j'utilise également Xcode 4.2, car je ne veux pas passer à Lion.

  • J'ai essayé de ne pas utiliser someImageView.image = [UIImage imageNamed:@"image.png"]; et choisissez simplement l'image "image.png" dans l'emplacement IB.Cela n'a pas fonctionné.
  • J'ai essayé en tapant simplement image dans l'emplacement IB.Cela n'a pas fonctionné.Il récupère image.png quoi qu'il arrive.
  • J'ai essayé d'utiliser someImageView.image = [UIImage imageNamed:@"image@2x.png"]; Il affiche l'image 2x sur n'importe quel appareil.
  • J'ai essayé d'utiliser image@2x~ipad.png et image~ipad.png .Cela n'a pas fonctionné.
  • Tous les ensembles d'images portent le nom correct, la taille est correcte et ont tous été importés dans le projet dans le même groupe/dossier.
  • Ce n'est pas une application universelle, mais une application iPad.
  • J'ai nettoyé la version plusieurs fois au cours du processus.

Toute aide est grandement appréciée!

*MISE À JOUR: UIImage passe à @2x lorsque [UIScreen mainScreen].scale revient 2.Lorsque je vérifie cela, il renvoie 1, ce qui explique pourquoi @2x n'est pas activé.Alors, est-ce que quelqu'un sait si la version 4.2 ne reconnaît pas l'écran Retina de l'iPad3 ?j'ai trouvé quelque chose de similaire ici.

*MISE À JOUR 2 :J'ai réussi à faire fonctionner cela en fusionnant le SDK 5.1 dans le Xcode et en l'utilisant comme SDK de base.Cela n'a pas fonctionné lorsque j'avais à la fois les SDK 5 et 5.1 dans le dossier SDK, et a fonctionné à merveille lorsque j'ai supprimé la version SDK 5.

Était-ce utile?

La solution

Cela ne fonctionne pas par défaut, car Xcode 4.3.1 a été la première version à prendre en charge le nouvel iPad (retina)

Si tu veux quand même que ça marche, vérifie cette réponse

Autres conseils

as-tu essayé d'ajouter le ~ipad suffixe à vos images ?l'image de votre iPad Retina doit donc être renommée et appelée comme ceci :

[UIImage imageNamed:@"image@2x~ipad.png"]

J'espère que cela t'aides.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top