iOS affichage de la Rétine: les images de taille double
De test/affichage de la rétine, j'ai créé une UIView avec une taille de 100x100.
J'ai créer 2 images:
- taille normale (100x100)
- la rétine size (200x200)
J'ai deux situations:
1) Non-Retina display + Taille Normale de l'image en arrière-plan
2) écran Retina + Rétine Taille de l'image en arrière-plan
Le 1er scénario est ok.
Dans le 2e scénario, l'image est de taille double et dans mon UIView je peux voir seulement 1/4 de l'image totale.
La même chose se passe lorsque j'essaie de mettre une image de fond pour mon UIViewController barre de navigation comme suit:
if (IS_RETINA()) {
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:IMG_NAVIGATION_BAR_BACKGROUND_RETINA] forBarMetrics:UIBarMetricsDefault];
}
else {
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:IMG_NAVIGATION_BAR_BACKGROUND] forBarMetrics:UIBarMetricsDefault];
}
OriginalL'auteur Bagbyte | 2012-02-20
Vous devez vous connecter pour publier un commentaire.
Il y a un moyen beaucoup plus facile de le faire. Donner la rétine version de l'image au même nom que le non-retina version, sauf avec un "@2x" à la fin. Par exemple, si votre image a été nommé
foo.png
, puis la rétine version devrait être nommé[email protected]
.Ensuite, il suffit de se référer à la version normale du nom du fichier (par exemple,
foo.png
) à tout moment. Lorsque votre application est en cours d'exécution sur la non-retina matériel, l'image sera utilisée, mais à chaque fois que vous êtes sur la rétine du matériel de la meilleure résolution d'image sera automatiquement utilisée. Il est plus facile que d'avoir à écrire une instruction if pour chaque image que vous utilisez, plus il va effectivement travailler.Bonne prise, merci.
Pour clarifier, l'OP problème, c'est que son "retina" de l'image est encore en cours de création avec une échelle de
1
, donc ça va être flou et de ne montrer que le quadrant supérieur gauche.Cela fonctionne avec le code de trop?
hein? Je crains que je n'ai aucune idée de ce que vous dites. @user915829 oui, si c'est de l'IB ou code, il suffit de se référer à
foo.png
et[email protected]
sera utilisée à la place automatiquement sur la rétine des appareils.OriginalL'auteur yuji
Vous n'avez pas besoin de code de la IS_RETINA test, il suffit d'ajouter le @2x suffixe du nom du fichier contenant l'image que vous souhaitez utiliser pour l'affichage de la rétine, et iOS va automatiquement utiliser de préférence.
Bundle 2 fichiers image, prettyNavBarBackground.png et [email protected]
Vous pouvez simplement utiliser ce seul appel, et iOS sera sélectionnez l'option appropriée
Avec le code de trop - juste de l'essayer. Vous devez inclure toutes les variantes de foo.png et [email protected] dans votre projet. Mais dans le code, vous référer seulement à toto.png - tout le reste se fait automatiquement.
Yep, un code ou IB - pour chaque image, iOS va utiliser du mieux qu'il peut trouver.
OriginalL'auteur Snips
U de ne pas avoir à écrire de code de distinguer entre la rétine et la normale du matériel. U suffit d'ajouter un "@2x" de l'image . Cela va bien fonctionner comme parfait.
U n'avez pas à appeler ces images individuellement, mais il suffit d'écrire le nom de fichier.
OriginalL'auteur swathy krishnan