iOS - 与自动布局成比例的间距

ham*_*obi 12 xcode constraints objective-c autolayout swift

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

在此输入图像描述

eta*_*luz 15

假人的意见??? 你肯定是在逗我.如果那是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.
Run Code Online (Sandbox Code Playgroud)

摆脱所有这些水平空间限制.并且总是考虑乘数 - 约束的常数应始终设置为0.

Apple痴迷于原生分辨率 - 他们不希望您的设计在不同的屏幕尺寸上进行缩放.拧紧它们.一路缩放分辨率.

  • 这应该是标记的答案,实现起来非常简单。 (2认同)

the*_*iat 11

注意 - 这是一种粗略的做法.

我遇到了类似的问题并通过在我的对象之间添加虚拟视图来解决它,以表示它们之间的间距.您可以将虚拟视图约束为与其余视图成比例缩放,这将使对象之间的间距与整体大小正确缩放.我设置了我的虚拟视图的隐藏属性,因此它们不会显示(注意 - 它们在被隐藏时仍然可以正确布局).

希望有所帮助.

编辑:

这种方法是不完美的(你必须用无关的视图弄乱IB),但像@sha说这似乎是完成它的唯一方法.事实证明,其他人一直在提供类似的建议.我遇到了这些可能有用的参考资料:

AutoLayout可保持视图大小成比例

AutoLayout:布局一致性,比例元素间距为3.5"和4"屏幕

  • 事实上,这是Apple推荐你这样做的方式.我现在找不到它,但是他们的WWDC材料中有一些视频显示他们以这种方式实现它. (2认同)