iOS 6中使用Autolayout的动态大小

时间:2012-09-24 12:32:04

标签: ios autolayout

我希望有一个视图,其大小(在这种情况下是它的高度)取决于屏幕大小,以覆盖带有一个xib的iPhone4 / iPhone6的屏幕。所以,我想说我采用ListView,我不想让它全屏,但我有固定的空间上下。它的高度应该是:

screen_height - (space_above + space_below) 

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

在模拟指标中设置自由格式后,我可以拖动以更改根视图的大小并查看约束是否有效(ListView正确调整大小)。

问题:

但是,如果我在模拟器中运行应用程序,则所有内容都显示为在Interface Builder中的最后位置。我错过了什么阻止布局根据其约束工作?

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

2 个答案:

答案 0 :(得分:0)

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

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

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

但它会使视图的大小合适,并使约束有效。

答案 1 :(得分:0)

你想要这个吗?

autoLayout Portrait

autoLayout LandScape

如果是,则放大图像并遵循那里的约束。 当你使用autoLayout时它太有趣了,不是吗?