【问题标题】:iOS: Multi-line UILabel has wrong size with another UILabel in a horizontal UIStackViewiOS:多行 UILabel 与水平 UIStackView 中的另一个 UILabel 大小错误
【发布时间】:2015-11-18 10:22:45
【问题描述】:

我遇到了一个奇怪的问题,我怀疑这是 UILabel 中的错误,但我需要先确定这不是我的错误。

The hierarchy and the problem(s): 标题标签变小,多行,年份标签太大,即使有足够的空间。下一张图片将显示这一点。

重要的是:标题标签是多行的,其余的都是开箱即用的组件。它们的内容拥抱和压缩阻力是相同的,默认值。

two situations 不会发生这种情况。 1.如果我删除年份标签 2. 如果我将标题标签嵌入到任何类型的堆栈视图中

因此,只需执行这两个更改之一,标题标签就可以正确调整大小,这就是我怀疑这是 UIKit 错误的原因。 我尝试了我能想到的一切,包括更改内容拥抱和压缩阻力、堆栈视图对齐和分布、视图模式。

为标题标签设置 prefferedMaxLayoutWidth 不起作用,因为文本是动态的。

【问题讨论】:

  • 你正在使用自动布局?
  • 是的,我添加的唯一约束是大堆栈视图的顶部,前导和尾随坚持视图的边缘/边距
  • 您提供的链接上的图像中有 4 个堆栈视图。您对哪一个应用了约束?
  • 最上面的,包含所有元素
  • 约束不是问题。这实际上是 UIStackView 中多行标签的错误。我自己遇到了它,并且能够很容易地重现它。最简单的解决方法是将多行标签嵌入到自身的 UIStackView 中,即使它不需要。

标签: ios iphone uilabel uistackview


【解决方案1】:

确实存在一个错误,对此至少有两种解决方法:

  1. 按照 Steven Van Impe 的建议,将多行标签嵌入另一个 UIStackView。
  2. 将其抗压强度更改为 999 或 1000。

最后,由于堆栈视图的局限性,我最好不要使用它们。也许他们会在未来的更新中变得更好。

【讨论】:

    猜你喜欢
    • 2021-08-13
    • 2023-03-17
    • 1970-01-01
    • 2017-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多