我尝试使用界面构建器创建完美的缩放视图。到目前为止,一切都很好。我以编程方式缩放字体,按钮等。唯一的问题是元素之间的约束(间距)保持不变。我想避免为间距限制创建出口,因为它看起来很乱。我希望元素之间的间距保持成比例,因为我拉伸元素。现在,所有内容都根据屏幕的左侧对齐。如果我伸展我的视线,一切都保持左对齐。我希望它按比例分开。我该如何实现这一点(最好使用界面构建器)?
答案 0 :(得分:12)
虚拟观点???你肯定是在逗我。如果那是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.
摆脱所有这些水平空间限制。并且总是考虑乘数 - 约束的常数应始终设置为0。
Apple痴迷于原生分辨率 - 他们不希望您的设计在不同的屏幕尺寸上进行缩放。拧紧它们。一路缩放分辨率。
答案 1 :(得分:11)
注意 - 这是一种粗略的做法。
我遇到了类似的问题并通过在我的对象之间添加虚拟视图来解决它,以表示它们之间的间距。您可以将虚拟视图约束为与其余视图成比例缩放,这将使对象之间的间距与整体大小正确缩放。我设置了虚拟视图的隐藏属性,因此它们不会显示出来(注意 - 它们在被隐藏时仍能正确布局)。
希望有所帮助。
修改强>
这种方法不完美(你必须用无关的视图来弄乱IB),但像@sha说这似乎是完成它的唯一方法。 事实证明,其他人一直在提供类似的建议。我偶然发现了这些可能有用的参考资料:
AutoLayout to keep view sizes proportional
AutoLayout: layout consistency with proportional element spacing with 3.5" and 4" screens