iOS模拟器与故事板屏幕上的布局不同

3
我遇到了一个奇怪的问题。我在storyboard中创建了一个非常简单的屏幕,上面有一些按钮,然后当我运行模拟器(是否正确说法应该是模拟器还是仿真器?)时,其中一个按钮的间距出错了。
我添加了一张截图。 模拟器位于storyboard屏幕的右侧。
你知道这可能是为什么吗?
我认为这可能是按钮的问题。也许确实如此。但是当我拿出两个较低的按钮时,我得到了更奇怪的东西,如下图所示:
谢谢!

确保所有按钮具有相同的父视图和布局命令。可能是该按钮正在使用与其余按钮不同的父框架。 - Bergasms
@Bergasms,您能否澄清一下“父视图”是什么意思?到目前为止,我的应用程序中只有这些屏幕。 - Genadinik
没关系,其他人有更好的回答。我的意思是,在复杂的视图中,你可能有很多子视图。有时候当你在界面构建器中移动物件时,它会根据它认为你正在做的事情将物件放入不同的父视图中。这可能会导致一些意想不到的结果,因为新的父视图具有不同的坐标框架。 - Bergasms
3个回答

4

看起来您正在使用自动布局,除了"投资"按钮以外,所有的按钮都有一个顶部约束,而"投资"按钮具有底部约束,这导致当屏幕变高时,"投资"按钮到底部的距离保持不变。

点击"投资"按钮,在顶部菜单中点击[编辑 -> 固定 -> 与父视图的顶部间距]。

再次点击"投资"按钮。在右侧面板中点击第二个选项卡(可以设置框架大小)。查找与父视图的顶部间距约束,右键单击并删除。如果没有,则说明XCode已经做好了工作。尝试重新运行模拟器。

编辑:我想说的是,XCode有一个习惯,当您刚刚将视图拖入xib时,它会为您添加顶部约束,如果视图在其容器的上半部分,否则它会添加底部约束。我知道XCode想帮助我们,但有时真的让人抓狂。


编辑器部分也帮助了我。点击“编辑器”->“解决自动布局问题”->“重置为建议的约束条件”。 - Coder ACJHP

3
看起来您正在使用3.5英寸的模拟器并为4英寸设备进行布局,所以视图将被调整大小。
如果您使用了自动调整大小掩码,请检查按钮的自动调整大小掩码是否不正确?您可能希望它们全部都固定在屏幕顶部。请确保每个按钮的自动调整大小与此图像匹配。(您需要单击“标尺”图标才能看到这些设置。) autoresize pic

嗯,不太确定发生了什么事情,但我刚刚尝试删除导致问题的按钮,结果模拟器变宽了。另外...要到达你展示的屏幕,我应该在Storyboard中选择什么?谢谢! - Genadinik
你应该选择每个按钮并检查其设置。 - Jesse Rusak

1

我猜你正在使用默认提供NSAutoLayout的XCode4。当你将一个对象放置在storyboard上时,NSAutolayout会自动创建约束条件,以便在不同设备(iPhone4、iPhone5)或方向(纵向/横向)下自动布局对象。请检查NSAutolayout类和约束条件。如果你想要的话,可以删除NSAutolayout,这样你的对象就会在模拟器上正常显示,但在这种情况下,你必须手动调整不同方向和屏幕的对象。

希望能帮到你。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接