按钮之间的自动布局边距仅在 4" 屏幕上不正确

Posted

技术标签:

【中文标题】按钮之间的自动布局边距仅在 4" 屏幕上不正确【英文标题】:Autolayout margins between buttons are incorrect only on 4" screen 【发布时间】:2013-03-03 21:44:29 【问题描述】:

我有一堆在 3.5 英寸屏幕上看起来很完美的视图。当我在具有 4 英寸屏幕的 iPhone 5 模拟器上对其进行测试时,按钮之间的填充距离很远。

不仅仅是这个视图,填充问题似乎总是发生在某些地方(例如,在 2 个按钮之后)。我认为这与 ios 6 的约束的新功能有关。我曾尝试在没有运气的情况下弄乱这些值。我在 IB 中做所有事情并且启用了自动布局。

谁能向我解释我必须做什么?

3.5 英寸屏幕 iPhone 4 看起来不错! 4 英寸屏幕 iPhone 5 边距关闭。

【问题讨论】:

你使用了自动布局功能吗? @iiFreeman 如果使用,您的意思是选中 IB 中“使用自动布局”选项的复选框,那么是的。这是你的意思吗?谢谢! 【参考方案1】:

默认情况下,IB 将视图固定到其父视图的最近边缘;在您的情况下,顶部的两个按钮固定在顶部,底部的两个按钮固定在底部。当视图被拉伸以适应 4 英寸屏幕时,它们就会分开。

使用固定菜单显式创建您需要的约束(可能固定所有按钮之间的间距),然后删除将按钮固定到超级视图底部的约束。

如果您想要更详细的解释,我已经写了更多关于这个主题的文章(包括对您的确切案例的讨论)here。

【讨论】:

谢谢你,但即使在你的教程之后我似乎也无法让它工作。对不起,我一定是迟钝了。例如,在 IB 中,我抓住了 test3 按钮,我弄乱了“底部空间到”约束,但没有任何效果。然后我尝试了“对齐到 test2”,希望能有所收获……没有运气。还有其他建议吗?谢谢 顺便说一句,我的视图大小应该设置为视网膜 3.5 全屏还是 4.0?也许这就是问题 前导空间是左边的空间,你想要顶部空间,或垂直空间 - 选择按钮 3 并从固定菜单中选择固定顶部空间到超级视图。只有这样,您才可以删除底部空间限制。要将两个按钮固定在一起,请选择它们both,然后选择固定垂直间距。

以上是关于按钮之间的自动布局边距仅在 4" 屏幕上不正确的主要内容,如果未能解决你的问题,请参考以下文章

如何使用按钮动画实现自动布局

Android:对齐父底部+底部边距

如何根据可见性自动调整两个垂直按钮之间的边距?

iOS 限制:4 个按钮

表视图单元格仅在屏幕外时自动布局

如何正确设置 4s 的自动布局约束?