自动布局问题
Posted
技术标签:
【中文标题】自动布局问题【英文标题】:Auto-layout issue 【发布时间】:2018-02-14 11:50:28 【问题描述】:我有一个带有两个按钮的视图。我添加了自动布局。但是 iPhone 8 plus 的底部空间比 iPhone 4s 更多。我想在所有 iPhone 中保持顶部和底部的间距比相同。如何解决?
【问题讨论】:
你给容器添加约束了吗? 你应该有来自底部而不是顶部的约束。 您可能应该将按钮的约束相对设置到底部而不是顶部。 是的,我添加了约束 你会添加视图层次结构的图片和另一个约束吗? 【参考方案1】:更新
对于特定比率:据我了解,我们可以为 Centre Vertically Constraints
提供乘数。这里的顶部和底部空间比例在所有 iPhone 系列中都是相同的。我将乘数设为1.4
===================================
我知道那里有几个答案。但是,没有人使用UIStackView
来添加两个简单的按钮。
拖动两个 UIButton,选择这两个 UIButton,点击此处的 Embed in Stack
图标。
Stackview 属性
为 UIStackView 提供以下内容,
在Attributes Inspector
中将Axis
设置为Horizontal
,Distribution
设置为Fill Equally
,Spacing
设置为10
Stackview 约束 1
为那个 UIStackView 提供约束,选中/取消选中边距,左右 = 0,高度为 30。
Stackview 约束 2
但仍有一些约束条件没有得到满足。按住Control
并按住它,点击StackView
并拖动到SuperView
,你会得到黑色的弹窗。选择Center Vertically in container
。
Stackview 约束自定义
如果你想改变UIButton或者Bottom Space的高度,点击UIStackView,在Size Inspector
,你可以改变高度或者上下移动。
【讨论】:
你确实意识到虽然它与问题有关,但这并不能真正回答他的问题? 我刚才说了,UIStackView的基本使用。 是的,但你的回答离题了 这并非完全错误。我不知道为什么要投反对票?通过这种方式,我们也可以实现。 好吧..我们可以随心所欲地争论-我想真正的答案只能由他自己提供【参考方案2】:如果您使用的是自动布局,请像这样设置约束
【讨论】:
【参考方案3】:将约束设置为底部并保留顶部约束
【讨论】:
【参考方案4】:1) 选择两个按钮
2) 点击底部的“解决自动布局问题”按钮,然后点击“重置为选定的约束”
【讨论】:
这不会在每种情况下都给出准确的结果......!!! jignesh Vadadoriya ,答案将给出准确的结果。更好地使用 StackView 来避免更多的约束。【参考方案5】:您应该有 2 个堆栈视图。一个包含 2 个按钮的水平,另一个包含上一个堆栈视图的垂直。将水平堆栈视图设置为“填充”和“等间距”,将垂直堆栈视图设置为“填充”和“等距居中”。下面我附上了几张图片来说明我的意思。
唯一的约束是在堆栈视图上,它们将它们绑定到容器视图或父堆栈视图的大小。
这使您可以真正创建随设备屏幕尺寸缩放的自动布局。
【讨论】:
相信我,这是要走的路。这是一个免费课程,可以帮助您学习它。 udacity.com/course/auto-layout--ud1026【参考方案6】:使用这样的约束。这些按钮有superview的底部修复。
【讨论】:
以上是关于自动布局问题的主要内容,如果未能解决你的问题,请参考以下文章