L'image UIImageView s'est étirée même si contentMode = UIViewContentModeScaleAspectFit
Je suis vraiment déçu par la façon dont UIImageView affiche l'image.
J'ai des morceau de code suivant:
UIImageView *imgview = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 300, 100)];
imgview.image = [UIImage imageNamed:@"img.JPG"];
imgview.backgroundColor = [UIColor greenColor];
imgview.contentMode = UIViewContentModeScaleAspectFit;
[self.view addSubview:imgview];
Ce que je reçois est une capture d'écran suivante:
http://img26.imageshack.us/img26/3686/screenshot20130123at629.png
[image est étirée à la pleine largeur de UIImageView et de ne même pas prendre toute la hauteur]
Image d'origine:
http://img248.imageshack.us/img248/341/screenshot20130123at638.png
source d'informationauteur Mike
Vous devez vous connecter pour publier un commentaire.
Réglage de la taille doit se produire APRÈS la mise à l'contentMode
J'ai eu le même problème. Dans mon projet, un
UIImage
créé avecimageWithCIImage:
jamais respecté lescontentMode
de laUIImageView
il a été inséré dans.Certaines images n'ont également bizarre attributs qui provoque le même problème. La conversion à PNG avec Photoshop toujours travaillé.
Pas de travail avec
contentMode
:La
UIImageView
semble redimensionner basé sur laCGImage
.Vous avez besoin pour rendre le CIImage à un CGImage et peut l'utiliser comme une UIImage. Cela fonctionne avec
UIViewContentModeAspectFit
.Utiliser, par exemple,
createCGImage:fromRect:
ou mieux d'utiliser unCGImage
depuis le début.J'ai juste couru et votre code fonctionne très bien. Il pourrait avoir quelque chose à faire avec vous précisant JPG quand sa fait un png?
Vous pouvez également utiliser UIViewContentModeScaleAspectFill, mais assurez-vous que vos limites sont à l'intérieur de la vue de limiter parce que sinon, l'extérieur peut être clipsé
C'est stupide, si stupide, je suis fier de l'être. Ligne de fond est que je suis tombé sur ce post DONC penser contentMode = UIViewContentModeScaleAspectFit a été brisé alors qu'en fait, ce qui était vraiment cassé a mon attente de l'issue. Je travaillais avec une image carrée dans un carré de vue de façon à en forme et de Remplir ont été d'avoir exactement le même effet. J'ai pleuré comme un bébé quand je ne pouvais pas le faire s'asseoir panoramique à l'intérieur de la place.
Dans mon cas, j'ai résolu ce problème en supprimant certaines contraintes que redimensionner l'imageview que j'ai mis par erreur.
[Mise à JOUR]
Il est "Contraintes de Taille" celui qui taille par rapport à un autre point de vue.
Xamarin IOS Doc