我希望有一个视图,其大小(在这种情况下是它的高度)取决于屏幕大小,以覆盖带有一个xib的iPhone4 / iPhone6的屏幕。所以,我想说我采用ListView,我不想让它全屏,但我有固定的空间上下。它的高度应该是:
screen_height - (space_above + space_below)
在Interface Builder中,我可以设置两个垂直空间约束,然后甚至删除ListView的高度约束,使其高度由父视图和这两个空间约束决定。
在模拟指标中设置自由格式后,我可以拖动以更改根视图的大小并查看约束是否有效(ListView正确调整大小)。
问题:
但是,如果我在模拟器中运行应用程序,则所有内容都显示为在Interface Builder中的最后位置。我错过了什么阻止布局根据其约束工作?
如果我将模拟指标更改为Retina 3.5或4,Xcode会删除我的约束并返回固定大小约束。
答案 0 :(得分:0)
问题是根视图没有(假设其他)占用屏幕的大小。
也许不是最好的解决方案:
[self.view setFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)];
但它会使视图的大小合适,并使约束有效。
答案 1 :(得分:0)
如果是,则放大图像并遵循那里的约束。 当你使用autoLayout时它太有趣了,不是吗?