Ecran Retina ou non
dédo
Membre
Bonjour,
Voilà , ça fait un petit moment que je développe mon appli et, ayant un iPhone 4 et 5, j'ai entièrement créer les images pour les écrans rétina (image@2x.png). Cependant, je n'ai pas pensé que l'iPhone 3gs était encore de la partie.
Du coup, je ne sais pas comment m'y prendre car je suppose que je ne peut pas soumettre mon appli seulement pour les iphones 4,5,5c,...,non? Dois-je recréer toutes les images avec une résolution inférieur ou y a t il une astuce (par exemple CGAffinetransformescale(0.5,0.5);)
Merci.
Ps:c'est ma première appli que je compte soumettre à apple.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Oui, il faut avoir deux versions des images: image.png et image@2x.png.
Si tu utilises une UIImageView dans certains modes (par ex. Size to fit), évidemment ce sera réduit. Tu n'as qu'à tester sur le simu pour vérifier.
Oui mais du coup la taille de l'appli explose (faire deux fois la meme image), non?
Oui pour l'ios7, à la base mon appli est prévue pour l'ios 6 et plus. Mais j'ai cru voir un graphe montrant que 80% des utilisateurs environ étaient passés à l'ios 7. Du coup j'hésite à la mettre seulement pour ios 7 et plus.
Exact! Dans ma tête, c'était la moitié en plus ..
Autant pour moi, je vais faire ça alors.
Merci!
Au final, pour ceux qui peuvent se retrouver dans le même cas que moi, j'ai utilisé :
#define IS_RETINA ([[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)] && ([UIScreen mainScreen].scale == 2.0))
.
.
.
UIImageView* crazyDogImage;
if (IS_RETINA)
{
crazyDogImage = UIImageView alloc]initWithImage:[UIImage imageNamed:@"MyDog";
}
else
{
UIImage* WAF = [UIImage imageNamed:@MyDog];
crazyDogImage = [[UIImageView alloc]initWithImage:[UIImage imageWithCGImage:[WAF CGImage] scale:2 orientation:(WAF.imageOrientation)]];
}
Du coup, je crée une image pour l'écran retina mais pas pour les non-retina.
Je veux dire, certes on conserve en mémoire une image deux fois plus petite, mais ce qui compte en premier lieu, c'est l'affichage. Or, le rendu de l'UIImageView est stocké dans sa CALayer la première fois qu'elle est affichée.
Les chiffres actuels sont 85% pour iOS 7, 12% pour iOS 6 et 3% pour les iOS précédents. Et ça évolue tous les jours vers davantage d'iOS 7 (+5% en 2 mois) ! Jusqu'à ce qu'iOS 8 arrive .. qui ne sera PAS compatible avec l'iPhone 4, lui ..