Retina icônes (@2x) ne sont pas utilisés lorsque les images sont spécifiés dans le code

Je place une pièce de théâtre.image png sur mon point de vue. Lorsque la vue d'abord des charges, l'iPhone 4 attrape le correspondant [email protected] fichier et il semble grand. Cependant, lorsque j'appuie sur le bouton de lecture de mon code swaps pour la pause.fichier png. Puis, quand je me tape la pause.png pour ramener le jeu.png il utilise le jeu original.fichier png (pas le @2x version de ce que je pensais automatiquement de référence).

C'est le code que j'ai essayé de l'utiliser:

[button setImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateNormal];

Donc, si j'ai les fichiers de swap après la vue initiale de la charge, dois-je spécifier manuellement l' @2x version à l'intérieur d'une instruction if? Si tel est le UIScreen.à l'échelle du meilleur de l'attribut à utiliser pour cela?

Je suis actuellement en utilisant un code comme ceci:

if ([UIScreen mainScreen].scale > 1.0) 
{ 
    [button setImage:[UIImage imageNamed:@"[email protected]"] forState:UIControlStateNormal]; 
} 
else 
{ 
    [button setImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateNormal]; 
}

Ça fonctionne bien, mais avoir de l'instruction if, c'est ennuyeux et il semble un peu fragile.

Merci d'avance à vous tous, smarties.

S'il vous plaît poster comment vous permuter les images... UIImage imageNamed normalement gère automatiquement alors que d'autres méthodes ne sont pas (encore)
[bouton setImage:[UIImage imageNamed:@"jouer.png"] forState:UIControlStateNormal];
pour l'instant je suis à l'aide de la suite (désolé, je ne peux pas comprendre comment formater le code comme le code): si ([UIScreen écran principal].l'échelle > 1.0) { [bouton setImage:[UIImage imageNamed:@"[email protected]"] forState:UIControlStateNormal]; } else { [bouton setImage:[UIImage imageNamed:@"jouer.png"] forState:UIControlStateNormal]; } Cela fonctionne bien, mais avoir de l'instruction if, c'est ennuyeux et il semble un peu fragile.
J'ai inséré le code de vos commentaires dans la question. Heureusement, j'ai transmis votre message correctement. Dans l'avenir, vous devriez être en mesure de modifier vos questions à insérer ce code, puis la formater à l'aide de l'option de code dans la zone d'édition de la barre d'outils au-dessus du texte (ou à l'aide de quatre espaces avant chaque ligne de code).
Merci, Brad. Donc, comme vous le savez, imageName devrait être en mesure de référence de jouer.png et auto-swap @2x version même si je fais des allers-retours entre le jeu.png et pause.png?

OriginalL'auteur nicjohnson | 2010-08-09