3

我想要一个视图,其大小(在本例中为高度)取决于屏幕大小,以用一个 xib 覆盖 iPhone4/iPhone6 的屏幕。所以可以说我拿了一个 ListView 并且我不想让它全屏显示,但我在上面和下面有固定的空间。那么它的高度应该是:

screen_height - (space_above + space_below) 

在 Interface Builder 中,我可以设置两个垂直空间约束,然后甚至删除 ListView 的高度约束,因此它的高度由父视图和这两个空间约束确定。

在模拟指标中设置 Freeform 后,我可以拖动以更改根视图的大小并查看约束是否正常工作(ListView 正确调整大小)。

问题:

但是,如果我在模拟器中运行该应用程序,那么一切都将固定在 Interface Builder 中的最后一个位置。我错过了什么阻止布局根据其约束工作?

如果我将模拟指标更改为 Retina 3.5 或 4,Xcode 会删除我的约束并返回到固定大小的约束。

4

2 回答 2

0

你想要这个吗?

自动布局纵向

自动布局景观

如果是,则放大图像并从那里遵循约束。当您使用自动布局时,它太有趣了,不是吗?

于 2013-03-20T08:56:13.997 回答
0

问题是根视图(其他假设)不占用屏幕大小。

也许不是最好的解决方案:

[self.view setFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)];

但它使视图具有正确的大小并让约束起作用。

于 2012-09-25T19:07:18.327 回答