UIStackView使用介绍

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UIStackView使用介绍相关的知识,希望对你有一定的参考价值。

参考技术A

ios开发中,对于控件布局我们一般是使用AutoLayout加约束的机制实现,UIKit有一个布局组件UIStackView,它与Flutter中的Column和Row有点类似,我们可以使用这个控件实现横向或纵向上子视图的布局。

首先来了解几个重要的属性:
- open var axis: NSLayoutConstraint.Axis
这个属性有 horizontal 、 vertical 两种值,代表横向布局还是纵向布局子控件,默认是 horizontal 。设定了这个的属性后,内部的arrangedSubviews不需要添加主轴方向上的约束(指的是 vertical 时上下和 horizontal 时左右)。

- open var alignment: UIStackView.Alignment
这个属性代表内部arrangedSubviews的对齐方式, 默认.fill

- open var distribution: UIStackView.Distribution
这个属性代表内部arrangedSubviews的排布方式, 默认.fill。

我们使用UIStackView来布局内部子view时,子视图应该以下面方法来添加或者移除. 因为看方法很直白所以就不解释用法了,需要注意的是:

UIStackView :使用情节提要更改 UIStackView 图像宽度

【中文标题】UIStackView :使用情节提要更改 UIStackView 图像宽度【英文标题】:UIStackView : Change UIStackView image width using storyboard 【发布时间】:2015-11-30 05:08:00 【问题描述】:

问题:图像占据了大部分堆栈并且文本缩小了

我尝试更改内容拥抱优先级但没有任何更改!

如何在 UIStackview 中使用 storyboard 做到这一点?

我希望单元格看起来像 Eventbright 事件单元格吗?

我得到的是一张占据大部分单元格的图像?

【问题讨论】:

【参考方案1】:

UIStackViewDistribution 改为Fill Proportionally,而不是Fill,并为每个元素的宽度添加约束。这些约束将作为一个元素彼此之间比例的指导,而不是作为固定大小。

【讨论】:

【参考方案2】:

我尝试了以下方式。 整体设置如图:

在运行时结果如下:

第一个 Stack 视图按比例填充 imageview 宽度是 stackview 宽度的 1:4(控制并从 imageview 拖动到 stackview 并将相等宽度设置为 25%)

从控件中拖动选择等宽。如图所示

stack view 2 是一样的填充 堆栈视图 3 被平均填充

希望对你有帮助

【讨论】:

我应该在哪里输入 25% ? 当您控制并从图像视图拖动到堆栈视图时,选择等宽。然后转到尺寸检查器并双击约束。您将在答案中看到上述窗口。在乘数中输入 25%。

以上是关于UIStackView使用介绍的主要内容,如果未能解决你的问题,请参考以下文章

解决 UIStackView 布局歧义

使用 UIStackView 时,UIImageView 在 UITableViewCell 内被挤压

UIStackView 会工作吗?

Swift:扩展 UIStackView 以创建居中的标签列表

UIStackView使用介绍

UIStackView :使用情节提要更改 UIStackView 图像宽度