Je suis très nouveau dans Objective C et je ne fais que prendre mes marques. Je veux faire quelque chose de très simple mais cela s'avère être un défi:
J'essaie d'afficher une image dans un UIImageView
. L'image que je montre est grande et je veux qu'elle soit réduite pour correspondre à la UIImageView
. J'ai essayé de régler le mode d'affichage AspectFit
mais l'image est affichée à la taille d'origine et est découpée par la UIImageView
. Mon code est ci-dessous:
- (void)changeImages
{
UIImage* img11 = nil;
img11 = [UIImage imageWithContentsOfFile: [[NSBundle mainBundle] pathForResource:@"dog" ofType:@"jpeg"]];
u11.contentMode = UIViewContentModeScaleAspectFit;
u11.image = img11;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self changeImages];
}
Quelqu'un peut-il nous éclairer s'il vous plaît?
Merci!
Salut je voudrais essayer ça ...
- (void)changeImages
{
UIImage *img11 = [UIImage imageNamed@"dog.jpeg"];
u11.contentMode = UIViewContentModeScaleAspectFit;
u11.clipsToBounds = YES;
[u11 setImage:img11];
}
- (void)viewWillAppear:animated
{
[super viewWillAppear:animated];
[self changeImages];
}
Cela redimensionnera l'image (vers le haut ou vers le bas) afin qu'elle s'adapte à l'intérieur de l'imageView. Avoir clipsToBounds n'est pas nécessaire, mais arrêtera l'affichage de l'image en dehors du cadre de votre imageView.
HTH.
Ajoutez à votre UIViewController.m:
-(UIImage *)resizeImage:(UIImage *)image imageSize:(CGSize)size
{
UIGraphicsBeginImageContext(size);
[image drawInRect:CGRectMake(0,0,size.width,size.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
// here is the scaled image which has been changed to the size specified
UIGraphicsEndImageContext();
return newImage;
}
En utilisant:
UIImage *image = [UIImage imageNamed:@"image.png"];
CGSize size = CGSizeMake(50, 63); // set the width and height
UIImage *resizedImage = [self resizeImage:image imageSize:size];
J'espère que ça aide.
CGSize size=CGSizeMake(79, 84);//set the width and height
UIGraphicsBeginImageContext(size);
[image drawInRect:CGRectMake(0,0,size.width,size.height)];
UIImage * newImage = UIGraphicsGetImageFromCurrentImageContext();
//here is the scaled image which has been changed to the size specified
UIGraphicsEndImageContext();
Cela fonctionne bien et n'oubliez pas d'importer QuartzCore FrameWork ..
Bonne codage (^ _ ^) ....
Vous pouvez également définir le mode d'affichage: ajustement du format dans l'inspecteur des attributs dans Interface Builder.
J'ai fait ce qui suit et cela a aidé Changer le mode en "Remplissage d'aspect" à partir de la valeur par défaut "Echelle à remplir"
et ajoutez une ligne de code comme suit (je l'ai fait dans une configuration de cellule):
cell.photo.clipsToBounds = true