【问题标题】:ios - UIStackView and multiline UILabelsios - UIStackView 和多行 UILabel
【发布时间】:2021-08-13 18:47:35
【问题描述】:

我正在尝试将多行 UILabels 放入垂直 UIStackView,然后将此 UIStackView 放入水平 UIStackView 以及其他视图(UIImageUIButton)。

我的问题是标签的行数总是一。是否可以在不指定垂直堆栈宽度的情况下强制标签变为多行?

想要实现这样的东西:

【问题讨论】:

  • “有可能吗?”只要布局引擎可以明确地确定垂直堆栈的宽度,就可以!请添加有关您遇到的实际问题的更多详细信息。至少添加一个minimal reproducible example
  • 你在标签上设置preferredMaxLayoutWidth了吗?

标签: ios swift autolayout uistackview


【解决方案1】:

是否可以在不指定垂直堆栈宽度的情况下强制标签变为多行?

不,包装后的基础是指定宽度(静态/比例),因此您应该为垂直堆栈或标签设置宽度

【讨论】:

  • 如果将 水平堆栈视图 的分布设置为均匀填充,那么肯定会允许垂直堆栈视图具有明确的宽度(假设没有其他约束),而无需实际上为它指定宽度?
  • 是的,因为填充同样适用于垂直堆栈的高度,因此宽度仍然未知,因此没有包装
【解决方案2】:

我不能 100% 确定您要达到的目标。但据我了解,当垂直堆栈视图再次嵌入水平堆栈视图时。水平 stackView 属性及其约束决定了如何设置位置,特别是 stackView 对齐和分布。即使在堆栈视图中,您也可以将标签设置为最大常数。由于我不确定确切的情况,也许您可​​以简单地在您的 UILabel 文本中添加一个换行符 \n。

【讨论】:

    【解决方案3】:

    当然可以……

    “外部”水平堆栈视图:

    “内部”垂直堆栈视图:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-31
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 2018-01-26
      • 1970-01-01
      • 2013-07-03
      • 1970-01-01
      相关资源
      最近更新 更多