0
- (void)viewDidLoad
{
  UIImage *image = [UIImage imageNamed:@"moon"];
  CGSize size = CGSizeMake(256, 256);
  UIGraphicsBeginImageContextWithOptions(size, YES, 1);
  CGRect imageRect = CGRectMake(50.0, 50.0, 128, 128);
  [image drawInRect: imageRect];
  image = UIGraphicsGetImageFromCurrentImageContext();
  UIImageView *iv = [[UIImageView alloc] initWithImage: image];
  [self setView: iv];
  [iv release];
  [super viewDidLoad];
}

これは、メイン コントローラーで呼び出すコードです。画像をロードし、長方形に描画してから表示する必要があります。そして、このコードは小さな問題でそれを行います: 画像の縦横比が保持されない - 画像の高さが引き伸ばされているように見えるため、画像全体が引き伸ばされているように見えます。これは何が原因ですか?

4

2 に答える 2

1

コンテンツモードによるものです。次のように変更します。

[iv setContentMode:UIViewContentModeScaleAspectFit];
于 2011-12-09T15:08:53.657 に答える
1

あなたの問題はあなたの ImageView の contentMode であると思います

 [iv setContentMode:UIViewContentModeTop];

独自のサイズにしたい場合。

それ以外の場合は、スケーリングしたいなど、たくさんのオプションがあります

UIViewContentModeScaleToFill
UIViewContentModeScaleAspectFit,
UIViewContentModeScaleAspectFill,
UIViewContentModeRedraw,
UIViewContentModeCenter,
UIViewContentModeTop,
UIViewContentModeBottom,
UIViewContentModeLeft,
UIViewContentModeRight,
UIViewContentModeTopLeft,
UIViewContentModeTopRight,
UIViewContentModeBottomLeft,
UIViewContentModeBottomRight, 

楽しい ;)

于 2011-12-09T15:08:59.093 に答える