Изображение iPhone растянуто по всему изображению
- (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 ответа
Решение
Я думаю, что ваша проблема в contentMode вашего ImageView, попробуйте
[iv setContentMode:UIViewContentModeTop];
если вы хотите, чтобы он был своего размера.
в противном случае вам нравится масштабироваться или что-то еще, вы просто получили массу вариантов
UIViewContentModeScaleToFill
UIViewContentModeScaleAspectFit,
UIViewContentModeScaleAspectFill,
UIViewContentModeRedraw,
UIViewContentModeCenter,
UIViewContentModeTop,
UIViewContentModeBottom,
UIViewContentModeLeft,
UIViewContentModeRight,
UIViewContentModeTopLeft,
UIViewContentModeTopRight,
UIViewContentModeBottomLeft,
UIViewContentModeBottomRight,
наслаждаться;)
Это связано с режимом контента. Измените это так:
[iv setContentMode:UIViewContentModeScaleAspectFit];