iOS - 自动布局的比例间距

iOS - proportional spacing with autolayout

我正在尝试使用界面生成器创建完美的 to-scale 视图。到目前为止,一切都很好。我正在以编程方式缩放字体、按钮等。唯一的问题是元素之间的约束(间距)保持不变。我想避免为间距约束创建出口,因为它看起来很乱。我希望元素之间的间距在拉伸元素时保持比例。现在一切都基于屏幕的左侧对齐。如果我伸展我的视野,一切都保持左对齐。我希望它全部按比例分开。我怎样才能做到这一点(最好使用界面生成器)?

注意 - 这是一种粗略的方法。

我有一个类似的问题并通过在我的对象之间添加虚拟视图来表示它们之间的间距来解决它。您可以限制虚拟视图与您的其余视图成比例缩放,这将使您的对象之间的间距与整体大小适当缩放。我设置了我的虚拟视图的隐藏 属性,这样它们就不会出现(注意 - 它们在隐藏时仍然会正确布局)。

希望对您有所帮助。

编辑:

这种方法不完美(你必须用无关的视图来扰乱 IB),但就像@sha 所说的那样,这似乎是完成它的唯一方法。 事实证明,其他人也一直在给出类似的建议。我发现了这些可能有用的参考资料:

AutoLayout to keep view sizes proportional

AutoLayout: layout consistency with proportional element spacing with 3.5" and 4" screens

虚拟浏览量???你肯定是在逗我。如果那是 Apple 推荐的 - 那么我对他们不太尊重。

您显然要寻找的是中央水平(中心 X 对齐)约束,然后您只需使用乘数,同时将常数保持在 0:

乘数从 0 到 2

1 will place the center of the subview at the center of the superview.
0 will place the center of the subview at the left edge of the superview.
2 will place the center of the subview at the right edge of the superview.
0.5 will place the center of the subview at 25% through the superview.
1.5 will place the center of the subview at 75% through the superview.

摆脱所有那些水平 space 约束。并始终考虑乘数 - 约束常数应始终设置为 0。

Apple 痴迷于原始分辨率 - 他们不希望您的设计在不同的屏幕尺寸之间缩放。拧他们。一路缩放分辨率。