iOS 带有 3 个标签的水平 UIStackView - 第一个标签将其他标签推到看不见的地方
iOS horizontal UIStackView with 3 labels - First label pushed other labels out of sight
我不确定我是否理解正确UIStackView
。我在 UITableViewCell
中有一个 UIStackView
。它包含 3 个 UILabel
并设置为对齐和分布 Fill。
当我的第一个标签文本不是很长时,看起来都不错。第二个和第三个标签根据需要占用 space 并且它们向右对齐。第一个标签占据了剩余的 space。
但是,当第一个标签包含大量文本时,它会将其他两个标签推出可见区域。我必须做什么才能确保第二个和第三个标签始终可见,并根据显示内容的需要占用尽可能多的 space。第一个标签应始终占用剩余的可用 space,然后将其文本截断为“...”
这是我在 Storyboard 中的配置:
结果在 TableView 中是这样的:
您可以考虑将这 3 个视图直接放置到 contentView 而不是使用 UIStackView,并将第一个标签设置为第二个标签
我尝试了这里提到的其他解决方案,发现它们太难或不切实际。我不想以编程方式设置和更改布局约束,所以我继续使用这些值。最后,我找到了一个非常简单的解决方案,它完全符合我的要求。
我所要做的就是在我的第一个标签上将 "Content Compression Resistance Priority" 设置得较低。第二个和第三个标签有 750,"Content Hugging Priority" 也有 251 和 252,而第一个标签的值为 749 和 250。这正是我想要的结果。
谢谢你们。有时我觉得在这里问问题后我能更快地找到解决问题的方法。希望我的回答对以后的人有所帮助。
这个:
结果 给出了这个结果(请注意,我将第三行的第二个和第三个标签的 "isHidden" 设置为 true):
我不确定我是否理解正确UIStackView
。我在 UITableViewCell
中有一个 UIStackView
。它包含 3 个 UILabel
并设置为对齐和分布 Fill。
当我的第一个标签文本不是很长时,看起来都不错。第二个和第三个标签根据需要占用 space 并且它们向右对齐。第一个标签占据了剩余的 space。
但是,当第一个标签包含大量文本时,它会将其他两个标签推出可见区域。我必须做什么才能确保第二个和第三个标签始终可见,并根据显示内容的需要占用尽可能多的 space。第一个标签应始终占用剩余的可用 space,然后将其文本截断为“...”
这是我在 Storyboard 中的配置:
结果在 TableView 中是这样的:
您可以考虑将这 3 个视图直接放置到 contentView 而不是使用 UIStackView,并将第一个标签设置为第二个标签
我尝试了这里提到的其他解决方案,发现它们太难或不切实际。我不想以编程方式设置和更改布局约束,所以我继续使用这些值。最后,我找到了一个非常简单的解决方案,它完全符合我的要求。
我所要做的就是在我的第一个标签上将 "Content Compression Resistance Priority" 设置得较低。第二个和第三个标签有 750,"Content Hugging Priority" 也有 251 和 252,而第一个标签的值为 749 和 250。这正是我想要的结果。
谢谢你们。有时我觉得在这里问问题后我能更快地找到解决问题的方法。希望我的回答对以后的人有所帮助。
这个:
给出了这个结果(请注意,我将第三行的第二个和第三个标签的 "isHidden" 设置为 true):