web-dev-qa-db-fra.com

Comment gérer le mode de contenu UIImageView?

J'ai un UIImageView avec une taille de rect fixe. Mais mes images ne sont pas de taille fixe. Je souhaite afficher des images en fonction de la taille exacte de UIImageView. Que l'image soit grande ou grande en résolution, elle doit être en affichage fixe en fonction de la taille de UIImageView. Je suis confus en utilisant les actifs ci-dessous.

UIViewContentModeScaleToFill,
UIViewContentModeScaleAspectFit,
UIViewContentModeScaleAspectFill,
UIViewContentModeRedraw

Que définir dans le masque de taille automatique? Comment se comportent-ils?

44
DipakSonara

S'il vous plaît essayez ce code, j'espère que cela fonctionnera pour vous.

définir UIImageViewcontentMode sur UIViewContentModeScaleAspectFill comme ci-dessous:

imageView.contentMode = UIViewContentModeScaleAspectFill;

définissez autoresizingMask of UIImageView comme suit:

imageView.autoresizingMask =   
    ( UIViewAutoresizingFlexibleBottomMargin
    | UIViewAutoresizingFlexibleHeight
    | UIViewAutoresizingFlexibleLeftMargin
    | UIViewAutoresizingFlexibleRightMargin
    | UIViewAutoresizingFlexibleTopMargin
    | UIViewAutoresizingFlexibleWidth );
89
sagarcool89

Vous avez juste besoin de ces deux lignes:

imageView.contentMode = UIViewContentModeScaleAspectFill;
imageView.layer.clipsToBounds = YES; // Must do this or else image will overflow
3
atulkhatri

Dans Swift vous définissez également le mode contenu

var newImgThumb : UIImageView
newImgThumb = UIImageView(frame:CGRectMake(0, 0, 100, 70))
newImgThumb.contentMode = .ScaleAspectFit
2
Ali Raza

Voici une solution pour Swift:

let imageView = UIImageView(image: UIImage(named: "backgroundImage"))
imageView.frame = tableView.frame
imageView.contentMode = .ScaleAspectFill
tableView.backgroundView = imageView
2
Urkman

Si vous voulez que votre taille UIImageView corresponde à un ratio, vous devez définir son mode sur UIViewContentModeScaleAspectFit

 yourimage.contentMode=UIViewContentModeScaleAspectFit;

laissez-moi savoir que ça marche ou pas !!!

Bonne codage.

1
NiravPatel

Il est à noter que Swift 3 a changé comme suit

.ScaleAspectFit à scaleAspectFit

.ScaleAspectFill à .scaleAspectFill

1
kickinbahk

J'espère que cela vous aidera

CGImageRef imageRef = CGImageCreateWithImageInRect([largeImage CGImage], cropRect);

image = [UIImage imageWithCGImage:imageRef]];

CGImageRelease(imageRef);
0
SachinVsSachin