2013-07-27 2 views
1

I afficher une image de la rétine (avec @ 2x.png extension) en utilisant:l'image Retina affiche trop grand dans le simulateur de rétine

myImage = [UIImage imageNamed:@"[email protected]"]; 

UIGraphicsBeginImageContext(myImage.size); 
[myImage drawAtPoint: CGPointZero]; 
myImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

imageView = [[UIImageView alloc] initWithImage:myImage]; 
NSLog(@"Dimension:%f x %f",myImage.size.width,myImage.size.height); 
[self.view addSubview:imageView]; 

Cependant, l'image est affiché deux fois sa taille sur la simulation de la rétine. L'image et le simulateur ont tous deux une résolution de 640 x 960, donc je m'attendrais à ce que l'image remplisse l'écran.
Je sais qu'il y a d'autres façons que CGContext d'afficher une image, mais c'est comme cela que j'aurais besoin d'autres buts dans mon code.
Une idée de pourquoi j'ai ce problème de définition?

Répondre

4

Ne pas utiliser @ 2x suffixe

De la documentation Apple:

Les poignées classe UIImage tous les travaux nécessaires pour charger haute images de résolution dans votre application. Lors de la création de nouveaux objets image, vous utilisez le même nom pour demander à la fois les versions haute résolution standard et de votre image. Par exemple, si vous avez deux fichiers d'image, du nom Button.png et [email protected], vous devez utiliser le code suivant pour demander votre image du bouton:

UIImage *anImage = [UIImage imageNamed:@"Button"];

4

Vous n'avez pas besoin de charger explicitement une image rétine, @ 2x sera automatiquement ajouté au nom de l'image si le périphérique a un affichage rétine.

Changer votre code UIImage à: myImage = [UIImage imageNamed:@"iPhoneBackground.jpg"];

Questions connexes