如何显示填充屏幕宽度的UIImageView,并设置高度以保持纵横比?

时间:2014-03-06 21:43:41

标签: ios uiimageview

我有一个图像视图我初始化如下:

self.imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 200)];
[self.imageView setContentMode:UIViewContentModeScaleAspectFill];
self.imageView.clipsToBounds = YES;

然后我在网上获取图片并将其放在视图中。我的问题是我实际上想要显示完整的图像,而不是裁剪它所以它适合200 px。

我怎么能这样做?谢谢!

2 个答案:

答案 0 :(得分:2)

因此,您需要检查图像并根据图像的尺寸计算宽度:

UIImage *downloadedImage; // assuming this is not nil
CGFloat imageRatio = downloadedImage.size.height / downloadedImage.size.width;
self.imageView.frame = CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_WIDTH * imageRatio);

有一种更好的方法来获取屏幕宽度,而不是使用宏(CGRectGetWidth(self.view.bounds)),但这与您的问题无关。

答案 1 :(得分:1)

使用内容模式UIViewContentModeScaleAspectFit缩放图像以适合图像视图,保持图像的纵横比。

你的问题标题与你的问题正文不符,所以我要跟身体一起去:

  

我的问题是我实际上想要显示完整的图像,而不是   裁剪它所以它适合200 px。