изображение iPhone растянуто по всему изображению - PullRequest
0 голосов
/ 09 декабря 2011
- (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];
}

Это код, который я вызываю в моем главном контроллере. Он должен загрузить изображение, нарисовать его в прямоугольник, а затем показать его. И этот код делает это с небольшой проблемой: пропорции изображения не сохраняются - высота изображения кажется растянутой, поэтому все изображение кажется растянутым. Что вызывает это?

Ответы [ 2 ]

1 голос
/ 09 декабря 2011

Я думаю, что ваша проблема в contentMode вашего ImageView, попробуйте

 [iv setContentMode:UIViewContentModeTop];

, если вы хотите, чтобы он имел свой собственный размер.

в противном случае он вам понравитсячтобы быть масштабированным или что-то еще, вы только что получили массу вариантов

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

наслаждайтесь;)

1 голос
/ 09 декабря 2011

Это связано с режимом контента.Измените это так:

[iv setContentMode:UIViewContentModeScaleAspectFit];
...