UIImageView高度不是自动布局约束后子图像高度的高度。

时间:2015-07-23 17:20:34

标签: ios uiimageview autolayout nslayoutconstraint ios-autolayout

我的目标:

  • 图片宽度==屏幕宽度。
  • 宽高比保持不变,因此高度会自动调整。
  • UIImageView的高度==子图像高度的高度。 (目前无法正常使用,如下所示)

我正在使用XCode 6,AutoLayout约束故事板来完成此操作。

查看以下2个屏幕截图,了解(1)应用目前的样子和(2)我需要修复的内容。 what app currently looks like

正如您在屏幕截图左侧看到的那样,我的故事板选中了imageview。

  • imageview的宽度覆盖了屏幕的宽度
  • 我已将背景颜色设置为黑色,以便您可以看到imageview如何拉伸它的高度。
  • 查看屏幕截图的最右侧,查看到目前为止我设置的3个约束。前两个是在屏幕上显示图像视图,最后一个是确保它在导航栏下方。非常正常的约束。

到目前为止看截图,我的前两个目标都很满意。图像的宽度是屏幕的宽度(您可以在屏幕截图中的iPhone 4预览中看到)并且宽高比保持不变。

现在,这是我遇到的问题......

what is wrong

如何摆脱图像上方和下方的黑色空间?黑色来自imageview。 我希望imageview与其中的图像设置为相同的高度。

我有一些猜测:

  • 我应该为每个可用的大小类创建约束吗?因此,我不应该编辑wAny和hAny,而应该使用特定的大小类为iPhone设置imageview的高度约束,为iPad设置一个高度约束?
  • 如果我删除了前导和尾随约束,它似乎摆脱了黑色空间,但是然后图像视图不再适合屏幕,因此需要约束。是否有其他方法可以将imageview的宽度设置为屏幕宽度而不是使用这些约束?

1 个答案:

答案 0 :(得分:3)

将以下约束添加到imageView:

“纵横比”约束,乘数设置为imageView的纵横比。

例如:

如果图像的尺寸为(600 x 300),那么“纵横比”多样性将为2:1