Ich bin in Objective C sehr neu und ich orientiere mich nur. Ich möchte etwas wirklich einfaches machen, aber es stellt sich als Herausforderung heraus:
Ich versuche, ein Bild in einer UIImageView
anzuzeigen. Das Bild, das ich zeige, ist groß und ich möchte, dass es auf die UIImageView
verkleinert wird. Ich habe versucht, den AspectFit
View-Modus einzustellen, aber das Bild wird in der Originalgröße angezeigt und von der UIImageView
abgeschnitten. Mein Code ist unten:
- (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];
}
Kann jemand bitte etwas Licht in dieses Licht werfen?
Vielen Dank!
Hi, ich würde es versuchen ...
- (void)changeImages
{
UIImage *img11 = [UIImage [email protected]"dog.jpeg"];
u11.contentMode = UIViewContentModeScaleAspectFit;
u11.clipsToBounds = YES;
[u11 setImage:img11];
}
- (void)viewWillAppear:animated
{
[super viewWillAppear:animated];
[self changeImages];
}
Dadurch wird das Bild so skaliert (nach oben oder unten), dass es in imageView passt. Es ist nicht notwendig, clipsToBounds zu haben, aber das Bild wird außerhalb des Rahmens von imageView angezeigt.
HTH.
Fügen Sie Ihrem UIViewController.m hinzu:
-(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;
}
Mit:
UIImage *image = [UIImage imageNamed:@"image.png"];
CGSize size = CGSizeMake(50, 63); // set the width and height
UIImage *resizedImage = [self resizeImage:image imageSize:size];
Ich hoffe, es hilft.
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();
Dies funktioniert sicher und vergessen Sie nicht, QuartzCore FrameWork zu importieren.
Haben Sie eine glückliche Codierung (^ _ ^) ....
Sie können Ansicht: Modus auch im Ansichtsfenster „Attribute“ im Interface Builder auf Seitenverhältnis einstellen
Ich habe folgendes getan und es hat geholfen Den Modus vom Standardwert "Scale to fill" in "Aspect fill" ändern
und fügen Sie eine Codezeile wie folgt hinzu (ich habe es in einer Zellkonfiguration getan):
cell.photo.clipsToBounds = true