动态排列UIstackView中的UILabels

Posted

技术标签:

【中文标题】动态排列UIstackView中的UILabels【英文标题】:Arrange UILabels in UIstackView Dynamically 【发布时间】:2016-06-27 16:12:59 【问题描述】:

我将标签作为子视图添加到 UIstackview 使用排列的SubView 属性。

如果我保持 Stackview 轴水平,会发生什么情况, 我得到一条水平的 UILabels

label1 label2 label3 label4.....

如果我保持垂直,我会得到一条垂直的 UILabels 如下所示

label1
label2
label3
and so on

但我想要实现的是这个

label1, label2(if it fits) otherwise take it below
label3, label4
label5 and so on

目前我的代码是这样的

 uiLabel1.numberOfLines = 1
            uiLabel1.backgroundColor = THEMECOLOR
            uiLabel1.font = UIFont.preferredFontForTextStyle(UIFontTextStyleCaption1)
            uiLabel1.textColor = topicColor
            uiLabel1.layer.cornerRadius = (CGFloat)(5.0)
            uiLabel1.layer.masksToBounds = true
            uiLabel1.sizeToFit()
            uiLabel1.userInteractionEnabled = true           


            self.dynamicStackView.addArrangedSubview(uiLabel1)

【问题讨论】:

这听起来像 UICollectionView 可能更符合您的要求。 我同意枫。听起来像是收集视图的工作。否则,您将需要编写动态构建堆栈视图的堆栈视图的代码,这将是相当多的工作。 【参考方案1】:

我相信UICollectionView 的流布局是您所需要的。看看链接here

【讨论】:

以上是关于动态排列UIstackView中的UILabels的主要内容,如果未能解决你的问题,请参考以下文章

UIStackView 动态添加 2 个彼此相邻的标签,没有额外的间距

通过UIStackView在同等大小的UIImages下安排自定义大小的UILabels

在 UIStackView 中垂直居中三个 UILabel

如何使用自动布局来实现如下布局?

将 UIStackView 中的 UILabel 背景更改为渐变色

将视图动态添加到 UIStackview