UIStackView Weight like 线性布局
UIStackView Weight like Linear layout
如何用StackView设计如下布局
我知道它可以在不使用 stackview 的情况下轻松创建,但是可以使用 stackview 吗,因为我有很多 ui 已经使用 stackview 设计了我如何在视图之间添加分隔符,如上图
为此我设置了以下限制条件
**但是 运行 时间它显示为 **
您可以使用 UIStackView
s 来做到这一点,方法如下:
首先,创建一个 UIView
的子 class 用作两个按钮之间 UIView
的 class。
class CustomWidthView: UIView {
override var intrinsicContentSize: CGSize {
return CGSize(width: 1, height: self.frame.height)
}
}
你只需要覆盖 intrinsicContentSize
.
现在,添加您的 2 个按钮和它们之间的空 UIView
,并将 UIView
的 class 设置为 CustomWidthView
。将你的 2 个按钮和它们之间的视图嵌入到堆栈视图中,并使用适当的约束正确设置堆栈视图的位置。
Select 堆栈视图并从 Attributes inspector,找到名为 Distribution 的 属性 并从旁边的下拉菜单,select 按比例填充。
为了反映您在 UI 生成器中的更改,select 自定义宽度视图并转到 尺寸检查器 ,向下到列表,您会发现一个名为 Intrinsic Size 的 属性,将其值更改为 Placeholder,然后从 width下拉菜单,select 1.
可能有更好的方法来实现这一点,但这是我目前找到的方法,我想找到更好的方法。
您可以使用一些简单的 Autolayout
constraints
来获得这种带有 UIStackView
的界面。
下图描述了您可以申请的hierarchy and constraints
:
Accept and Reject
按钮也有 Equal Width
约束。
输出截图:
由于UIStackView
使用自动布局来安排其子视图,您可以通过创建约束来修改其行为。
我假设您在堆栈中有三个视图:接受按钮、分隔线和取消按钮。
创建两个约束:
接受按钮和取消按钮之间的等宽约束。
分隔符的固定宽度约束(大概将其宽度设置为 1)。
另见 。
如何用StackView设计如下布局
我知道它可以在不使用 stackview 的情况下轻松创建,但是可以使用 stackview 吗,因为我有很多 ui 已经使用 stackview 设计了我如何在视图之间添加分隔符,如上图
为此我设置了以下限制条件
**但是 运行 时间它显示为 **
您可以使用 UIStackView
s 来做到这一点,方法如下:
首先,创建一个 UIView
的子 class 用作两个按钮之间 UIView
的 class。
class CustomWidthView: UIView {
override var intrinsicContentSize: CGSize {
return CGSize(width: 1, height: self.frame.height)
}
}
你只需要覆盖 intrinsicContentSize
.
现在,添加您的 2 个按钮和它们之间的空 UIView
,并将 UIView
的 class 设置为 CustomWidthView
。将你的 2 个按钮和它们之间的视图嵌入到堆栈视图中,并使用适当的约束正确设置堆栈视图的位置。
Select 堆栈视图并从 Attributes inspector,找到名为 Distribution 的 属性 并从旁边的下拉菜单,select 按比例填充。
为了反映您在 UI 生成器中的更改,select 自定义宽度视图并转到 尺寸检查器 ,向下到列表,您会发现一个名为 Intrinsic Size 的 属性,将其值更改为 Placeholder,然后从 width下拉菜单,select 1.
可能有更好的方法来实现这一点,但这是我目前找到的方法,我想找到更好的方法。
您可以使用一些简单的 Autolayout
constraints
来获得这种带有 UIStackView
的界面。
下图描述了您可以申请的hierarchy and constraints
:
Accept and Reject
按钮也有 Equal Width
约束。
输出截图:
由于UIStackView
使用自动布局来安排其子视图,您可以通过创建约束来修改其行为。
我假设您在堆栈中有三个视图:接受按钮、分隔线和取消按钮。
创建两个约束:
接受按钮和取消按钮之间的等宽约束。
分隔符的固定宽度约束(大概将其宽度设置为 1)。
另见