将UIImageView缩放以适应屏幕宽度

8

我有一个使用Storyboard在UIViewController中创建的UIImageView。

我尝试重新调整图像的宽度以适应屏幕宽度,并按比例重新调整高度:

[fImage setImage:[UIImage imageNamed: @"f2345.jpeg"]];
[fImage sizeToFit];
fImage.contentMode = UIViewContentModeScaleAspectFit;
CGRect frame = filmImage.frame;
frame.size.width = [[UIScreen mainScreen] bounds].size.width;
// Alternative way to do the similar thing - gives the same result in my case
// frame.size.width = [[UIScreen mainScreen] applicationFrame].size.width;
fImage.frame = frame;

接着它会显示一张经过缩放的图片,但是它适应了其他区域并且在我的图片周围留出了一些空白。

1个回答

13

尝试使用这段代码:

float imgFactor = frame.size.height / frame.size.width;
frame.size.width = [[UIScreen mainScreen] bounds].size.width;
frame.size.height = frame.size.width * imgFactor;

非常好用,谢谢!我仍然不明白为什么您提供的代码在我的情况下有效,能否请您解释一下? - syntagma
原因是您正在定义视图的框架;这样做将使界面生成器中设置的任何自动缩放失效;因此,如果您修改了框架,则最好根据您想要的进行修改。我的做法是将宽度设置为全尺寸,然后以保持比例的方式计算高度。 - sergio

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接