动态尺寸与iOS 6中的Autolayout

问题描述:

我想有一个尺寸(在这种情况下,它的高度)依赖于屏幕尺寸的视图,用一个xib覆盖iPhone4/iPhone6的屏幕。因此,可以说我采取了ListView,我不想让它全屏,但我有固定的空间上下。那么它的高度应该是:动态尺寸与iOS 6中的Autolayout

screen_height - (space_above + space_below) 

在Interface Builder中我可以设置两个垂直空间的限制,然后即便如此它的高度是由父视图和这两空间的限制来确定删除的ListView的高度约束。

在模拟指标中设置了*格式我可以通过拖动来更改我的根视图的大小并查看约束的工作方式(ListView正确调整大小)。

问题:

但是,如果我在运行模拟器的一切应用程序出现固定为在Interface Builder中的最后一个位置。我错过了什么能够阻止布局按照其约束进行工作?

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

问题是根视图没有(假设)采取屏幕的大小。

也许不是最好的解决办法:

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

但它带来了大小合适的视图,并让约束工作。

你想要这个吗?

autoLayout Portrait

autoLayout LandScape

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