2013-09-22 125 views
14

iOS7真的让我四处乱动。模糊布局 - “高度对'图像视图'模糊不清'”

这是从iOS6导入的项目,可以在我测试的所有设备上顺利运行。 不知何故,图片中的图片视图在运行时设置为312x400,忽略了我在故事板中设置的高度规格。

我知道我错过了一些关于autolayout的细节,但是什么给了? 为什么我提供的高度根本不重要,为什么这与Xcode4.x/ios6有什么不同?

Snapshot from Xcode5

回答

17

用于图像视图height属性的布局是不明确的。当您使用自动布局时,它不会使用Interface Builder中图像视图的高度。相反,它使用图像视图上设置的约束。

在图像视图上创建高度约束,并将其设置为所需的高度(如果是固定高度)。如果想要缩放高度,请将图像视图顶部和底部的约束条件限制为图像视图的超级视图。对于您提供的屏幕截图,您可能需要设置从图像视图顶部到顶部布局指南的限制条件。

+0

那么,为什么还有虚拟框让我指定高度?我能不能简单地通过在适当的位置放置物品并设置固定尺寸来产生限制? – user

+1

这些字段存在于IB中,因此它只知道在IB内部显示视图的大小(如果启用了自动布局)。如果自动布局被禁用,并且旧的struts和弹簧系统被启用,则这些字段在运行时用于宽度和高度。启用自动布局功能后,如果需要固定大小,则必须创建约束。 – Andrew

0

如果您正在使用自动布局,并且您需要设置可满足垂直和水平布局的约束条件。

在这种情况下,您可能会想要将高度和宽度约束添加到图像视图。

+0

我也在面对UICollectionView中的类似问题。我正在使用自动布局在UICollectionViewCell中设置数据。每个东西在界面构建器中看起来都很完美运行应用程序后,我调试我的应用程序,它显示UIView模糊的位置。 –

16

enter image description here

一套固有大小作为占位符。

+0

谢谢!这使得我的UIControl子类能够以简单的方式适应其中的标签文本大小,而无需明确设置宽度约束并摆脱警告。 –