私はObjective Cを初めて使用し、ベアリングを手に入れました。私は本当に簡単なことをしたいのですが、それはかなりの挑戦であることがわかります:
UIImageView
に画像を表示しようとしています。私が表示している画像は大きく、UIImageView
に合うように縮小したいです。 AspectFit
表示モードを設定しようとしましたが、画像は元のサイズで表示され、UIImageView
でクリップされます。私のコードは次のとおりです。
- (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];
}
誰かがこれに光を当てることができますか?
ありがとう!
こんにちは私はこれを試してみます...
- (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];
}
これにより、imageView内に収まるように画像が拡大または縮小されます。 clipsToBoundsは必須ではありませんが、imageViewのフレームの外側に画像が表示されるのを停止します。
HTH。
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;
}
を使用して:
UIImage *image = [UIImage imageNamed:@"image.png"];
CGSize size = CGSizeMake(50, 63); // set the width and height
UIImage *resizedImage = [self resizeImage:image imageSize:size];
役に立てば幸いです。
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();
これは確実に機能し、QuartzCore FrameWorkをインポートすることを忘れないでください。
ハッピーコーディングをしてください(^ _ ^)....
Interface BuilderのAttributes InspectorでView:ModeをAspect Fitに設定することもできます
私は次のことを行いましたが、モードをデフォルト値「Scale to fill」から「aspect fill」に変更するのに役立ちました
次のようにコード行を追加します(セル構成で行いました)。
cell.photo.clipsToBounds = true