宽度为 "wrap content" 的 UIStackView
UIStackView with "wrap content" width
问题:
使用 2 个元素创建水平 UIStackView
带有“短文本 2”的项目宽度应为 "wrap content"。带有“长文本 1”的项目应全部填空 space。
请帮助理解,如何用代码(Swift语言)创建它?
第 1 步: 拖动一个 StackView 添加左、右、top/bottom 约束。 (暂时忽略错误)
第2步:拖拽两个标签添加到stackView(继续忽略警告)
第 3 步:现在您需要解决水平内容歧义,因此将左侧标签的内容拥抱优先级更改为 250,同时将右侧标签的内容拥抱优先级保留为 251
第 4 步: 现在是垂直高度的扭曲内容问题 :) 只需 select 右侧标签并将其内容压缩阻力设置为 999,同时离开左侧标签的内容抗压性为 751
如果您想知道内容压缩阻力和内容拥抱优先级等方面发生了什么,请阅读相同的苹果文档以获取更多详细信息
只是为了简要说明我在做什么,在 iOS UILabel
中有隐含的内容大小,因此它们根据内容获取大小。堆栈视图也是如此。现在,由于 StackView 必须根据它拥有的两个标签来推断其高度,并且它们都具有相同的内容压缩阻力并最终具有不同的高度以解决混淆,它会寻求您的进一步帮助。您这样做是为了指定右标签与左标签相比更能抵抗其隐式垂直高度的变化。
这意味着现在堆栈视图知道它必须考虑右侧标签的高度来调整其高度,同时它可以覆盖左侧标签的隐式大小:)
逻辑验证:
在更改右侧标签字体堆栈视图高度时自动增加并增加左侧标签的高度:)
编辑 OP 的评论:
正如 OP 在评论中建议的那样,conern 是宽度而不是高度,因此不需要第 4 步,您的问题在第 3 步结束时已解决。在设置内容拥抱优先级时它自己
关于更改右标签内容UI更新如下所示
仅此而已 :) 希望对您有所帮助
问题:
使用 2 个元素创建水平 UIStackView
带有“短文本 2”的项目宽度应为 "wrap content"。带有“长文本 1”的项目应全部填空 space。
请帮助理解,如何用代码(Swift语言)创建它?
第 1 步: 拖动一个 StackView 添加左、右、top/bottom 约束。 (暂时忽略错误)
第2步:拖拽两个标签添加到stackView(继续忽略警告)
第 3 步:现在您需要解决水平内容歧义,因此将左侧标签的内容拥抱优先级更改为 250,同时将右侧标签的内容拥抱优先级保留为 251
第 4 步: 现在是垂直高度的扭曲内容问题 :) 只需 select 右侧标签并将其内容压缩阻力设置为 999,同时离开左侧标签的内容抗压性为 751
如果您想知道内容压缩阻力和内容拥抱优先级等方面发生了什么,请阅读相同的苹果文档以获取更多详细信息
只是为了简要说明我在做什么,在 iOS UILabel
中有隐含的内容大小,因此它们根据内容获取大小。堆栈视图也是如此。现在,由于 StackView 必须根据它拥有的两个标签来推断其高度,并且它们都具有相同的内容压缩阻力并最终具有不同的高度以解决混淆,它会寻求您的进一步帮助。您这样做是为了指定右标签与左标签相比更能抵抗其隐式垂直高度的变化。
这意味着现在堆栈视图知道它必须考虑右侧标签的高度来调整其高度,同时它可以覆盖左侧标签的隐式大小:)
逻辑验证:
在更改右侧标签字体堆栈视图高度时自动增加并增加左侧标签的高度:)
编辑 OP 的评论:
正如 OP 在评论中建议的那样,conern 是宽度而不是高度,因此不需要第 4 步,您的问题在第 3 步结束时已解决。在设置内容拥抱优先级时它自己
关于更改右标签内容UI更新如下所示