同じ問題についてstackoverflowでさまざまな投稿を見てきましたが、どれもうまくいかなかったため、クエリを投稿しています
UIImageView
画像ギャラリーから画像を選択してインスタンスに配置するアプリケーションに取り組んでいます
drawImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"abc.png"]];
[drawImage setContentMode:UIViewContentModeScaleToFill];
drawImage.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
drawImage.clipsToBounds = YES;
[drawImage setFrame:self.view.frame];
NSLog(@"%@",NSStringFromCGSize(drawImage.frame.size));
[self.view addSubview:drawImage];
これは画像ギャラリーのコードです
imagePickerObj.sourceType=UIImagePickerControllerSourceTypeSavedPhotosAlbum;
imagePickerObj.allowsEditing=YES;
ギャラリーから画像を選択するときは、以下のコードを使用しています
UIImage *img = [info objectForKey:UIImagePickerControllerEditedImage];
NSLog(@" B4 crop Image size %@",NSStringFromCGSize(img.size));
NSLog(@" B4 crop DrawImage size %@",NSStringFromCGSize(drawImage.frame.size));
UIGraphicsBeginImageContext(drawImage.frame.size);
[img drawInRect:CGRectMake(0,0,drawImage.frame.size.width,drawImage.frame.size.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
NSLog(@"After crop Image size %@",NSStringFromCGSize(newImage.size));
UIGraphicsEndImageContext();
// drawImage.clipsToBounds = YES;
drawImage.image = newImage;
問題は、どの画像を選択しても、追加した上記のコードから常に少し引き伸ばされているようにUIGraphicsBeginImageContext
見えることです。これにより、画像の幅と高さが減少しますが、それでも引き伸ばされているように見えます。
画像ビューのコンテンツ モードを and に変更しようとしましAspectFill
たAspectFit
が、残念ながらまったくうまくいきませんでした。
私が間違っているところを教えてもらえますか?