Redimensionner UIImage et de changer la taille de UIImageView
J'ai cette UIImageView
et j'ai des valeurs de son maximum de hauteur et de largeur max. Ce que je veux réaliser c'est que je veux profiter de l'image (avec un aspect ratio et de toute résolution) et je veux qu'il fit dans les frontières, de sorte que l'image ne dépasse pas, mais il peut rétrécir comme il veut. (marqué en rouge sur l'image):
Droite, l'image s'adapte à la taille nécessaire correctement, mais j'ai 2 soucis:
1. Le UIImageView
n'est pas égale à la taille de l'image, donc en laissant un arrière-plan rouge (et je n'en veux pas)
2. Si l'image est plus petite que la hauteur de mon UIImageView
il n'est pas redimensionnée pour être plus petit, il reste à la même hauteur.
Voici mon code et je sais que c'est faux:
UIImage *actualImage = [attachmentsArray lastObject];
UIImageView *attachmentImageNew = [[UIImageView alloc] initWithFrame:CGRectMake(5.5, 6.5, 245, 134)];
attachmentImageNew.image = actualImage;
attachmentImageNew.backgroundColor = [UIColor redColor];
attachmentImageNew.contentMode = UIViewContentModeScaleAspectFit;
Alors, comment puis-je modifier dynamiquement la taille, non seulement de la UIImageView.image
, mais de l'ensemble de UIImageView
, rendant ainsi sa taille entièrement réglable à son contenu. Toute aide serait grandement appréciée, merci!
Vous devez vous connecter pour publier un commentaire.
Lorsque vous obtenez la largeur et la hauteur d'une image redimensionnée Obtenir la largeur de l'image redimensionnée après UIViewContentModeScaleAspectFit, vous pouvez redimensionner votre imageView:
Je n'ai pas vérifié si cela fonctionne, mais je pense que tout devrait être OK
frame
?C'est le Swift équivalent pour Rajneesh071 réponse, en utilisant des extensions de
Utilisation:
Utiliser la catégorie ci-dessous et ensuite appliquer une bordure de Quartz dans votre image:
La catégorie:
UIImage+AutoScaleResize.h
UIImage+AutoScaleResize.m
Si vous avez la taille de l'image, pourquoi ne pas vous fixer le
frame.size
de l'affichage de l'image de cette taille?EDIT----
Ok, donc en voyant vos commentaires je propose ceci:
Ce code permet de redimensionner votre image en vue de son image, et également la position de l'affichage de l'image vers le même centre que votre "défaut" de position.
PS: j'espère que vous allez
imageView.layer.shouldRasterise = YES
et
imageView.layer.rasterizationScale = [UIScreen mainScreen].scale;
si vous utilisez CALayer effet d'ombre 😉 Il va grandement améliorer les performances de votre INTERFACE utilisateur.
attachmentImageNew.contentMode = UIViewContentModeScaleAspectFit
? Parce que l'image est trop grande. Je ne peux pas définir la taille de laimageView
être l'exact de la taille de son image, parce que j'ai la valeur maximale pour la hauteur et la largeur. Et à peu près 90% des images doivent être redimensionnées.Je pense que ce que vous voulez, c'est un autre
content mode
. Essayez d'utiliserUIViewContentModeScaleToFill
. Cela va à l'échelle le contenu à la taille de l'ur UIImageView en changeant le rapport d'aspect du contenu si nécessaire.Ont un look à la
mode de contenu
section sur la doc officielle pour avoir une meilleure idée des différents mode de contenu disponible (il est illustré avec des images).UIImageView
dans la galaxie loin, loin, loincontentMode
à tous, j'ai besoin de quelque chose de plus puissant