iOS: Multi-line UILabel 与水平 UIStackView 中的另一个 UILabel 的大小不正确

iOS: Multi-line UILabel has wrong size with another UILabel in a horizontal UIStackView

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

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

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

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

因此,只需进行这两项更改中的一项,标题标签就会正确调整大小,这就是为什么我怀疑这是一个 UIKit 错误。 我尝试了所有我能想到的方法,包括更改内容拥抱和压缩阻力、堆栈视图对齐和分布、视图模式。

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

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

  1. 按照 Steven Van Impe 的提议,将 multi-line 标签嵌入到另一个 UIStackView 中。
  2. 将其抗压性更改为 999 或 1000。

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