我正在尝试用界面生成器创建一个完美的视图。到目前为止,一切都很好。我正在缩放字体,按钮,等编程。。唯一的问题是约束元素之间的(间距)保持不变。我希望避免为间距约束创建出口,因为这看起来很混乱。我希望元素之间的间距在拉伸元素时保持成比例。现在所有的东西都是基于屏幕的左边对齐的.如果我拉伸视图,所有的东西都保持左对齐.我希望它都按比例拉伸.我怎样才能完成这个(最好使用界面生成器)?
k4ymrczo1#
愚蠢的观点???你一定是在开玩笑。如果这是苹果推荐的--那么我对他们没有太多的尊重。显然,您要寻找的是中心水平(中心X对齐)约束,然后只需在保持常数为0的同时使用乘数:
乘数从0到2去掉所有水平空间的约束,并且总是考虑乘数--约束的常数应该总是设置为0。苹果痴迷于原生分辨率--他们不想让你的设计在不同的屏幕尺寸上缩放。去他们的。一直缩放分辨率。
ui7jx7zq2#
注意-这是一种粗略的方法。我也遇到过类似的问题,通过在对象之间添加虚拟视图来表示它们之间的间距,解决了这个问题。您可以限制虚拟视图与其余视图成比例缩放,这将使对象之间的间距与整体大小成比例缩放。我设置了虚拟视图的隐藏属性,这样它们就不会显示出来(注意-隐藏时它们仍然可以正确布局)。希望能有所帮助。
编辑:
这个方法并不完美(你必须用无关的观点来扰乱IB),但就像@sha说的,这似乎是完成它的唯一方法。事实证明,其他人已经给出了类似的建议。我偶然发现了这些参考资料,它们可能会有帮助:AutoLayout to keep view sizes proportionalAutoLayout: layout consistency with proportional element spacing with 3.5" and 4" screens
unhi4e5o3#
建议使用UILayoutGuide。创建新的版式参考线示例,并使用addLayoutGuide将其添加到视图中。布局参考线是参与自动布局的非视图实体,没有全视图的开销,可用于以智能方式分隔视图。您可以在这里找到更多信息:
UILayoutGuide
addLayoutGuide
3条答案
按热度按时间k4ymrczo1#
愚蠢的观点???你一定是在开玩笑。如果这是苹果推荐的--那么我对他们没有太多的尊重。
显然,您要寻找的是中心水平(中心X对齐)约束,然后只需在保持常数为0的同时使用乘数:
乘数从0到2
去掉所有水平空间的约束,并且总是考虑乘数--约束的常数应该总是设置为0。
苹果痴迷于原生分辨率--他们不想让你的设计在不同的屏幕尺寸上缩放。去他们的。一直缩放分辨率。
ui7jx7zq2#
注意-这是一种粗略的方法。
我也遇到过类似的问题,通过在对象之间添加虚拟视图来表示它们之间的间距,解决了这个问题。您可以限制虚拟视图与其余视图成比例缩放,这将使对象之间的间距与整体大小成比例缩放。我设置了虚拟视图的隐藏属性,这样它们就不会显示出来(注意-隐藏时它们仍然可以正确布局)。
希望能有所帮助。
编辑:
这个方法并不完美(你必须用无关的观点来扰乱IB),但就像@sha说的,这似乎是完成它的唯一方法。事实证明,其他人已经给出了类似的建议。我偶然发现了这些参考资料,它们可能会有帮助:
AutoLayout to keep view sizes proportional
AutoLayout: layout consistency with proportional element spacing with 3.5" and 4" screens
unhi4e5o3#
建议使用
UILayoutGuide
。创建新的版式参考线示例,并使用addLayoutGuide
将其添加到视图中。布局参考线是参与自动布局的非视图实体,没有全视图的开销,可用于以智能方式分隔视图。
您可以在这里找到更多信息: