iOS保持UIImageView的宽高比但填充宽度

时间:2015-04-13 05:18:28

标签: xcode ios8 uiimageview xcode6

这是我在iOS 8和XCode 6下从头开始的第一个应用程序,所以这些间距问题一直在扼杀我。在下面你可以看到我有一个UIImageView,我想成为一个正方形,但我希望它在屏幕的宽度上延伸。它有一个宽度和高度值,所以当应用程序运行时,屏幕更宽,所以它最终在左上角有一个小盒子。我已经尝试过以各种方式解决约束,但是当我限制它时,图像会爆炸到全尺寸并覆盖屏幕上的所有内容。如何让它拉伸并保持1比1的宽高比?

enter image description here

修改 好的,我错了。不是UIImageView没有调整,它是整个视图。 enter image description here

3 个答案:

答案 0 :(得分:9)

使用图片视图内容模式:

[self.imageView setContentMode:UIViewContentModeScaleAspectFill];

看起来您还希望框架的宽度能够填满屏幕。使用这些约束:

  • 距离上,左,右的距离为0.
  • 高度等于宽度约束。
  • 图像比例1:1约束。

然后应适当调整图像视图的大小。

答案 1 :(得分:2)

限制双方和顶部超级视图。你也可以说,例如,宽度/高度可以是> = 320,这有时会有所帮助。但请记住,只有在纵向工作时,当您将UI转换为横向时,图像在填充宽度并同时完全在屏幕上时才能保持正方形。

编辑:图片不应该尝试超出屏幕边界(纵向),只要你不告诉它应该是"这远离底部"

编辑 - 2:将背景视图约束设置为superview。全部4。

答案 2 :(得分:1)

我会以编程方式设置框架,而根本不使用约束。要做到这一点

  1. 将ImageView链接到其View Controller中的插座
  2. 设置框架使两个值相等

    frame.size.width / frame.size.height