我有一个包含这些属性的堆栈视图: 轴:垂直 对齐:填充 分配:填写
我将其他水平堆栈视图添加到具有以下属性的垂直堆栈视图: 轴:水平 对齐方式:FirstBaseline 分配:填写
这些水平堆栈视图中的每一个都包含两个标签。我希望标签根据它们内部的文本缩小/扩展它们的宽度。每当我将numberOfLines设置为0时,两个标签的宽度都相等,并且高度会增加,如果我将numberOfLines设置为1,它们会根据文本扩展/缩小它们的宽度,但如果文本需要多行,文本的其余部分不会出现。非常感谢任何帮助。
答案 0 :(得分:1)
如果您有2个标签,行数设置为1
,彼此相邻,尝试适合200像素的堆栈视图,但每个标签需要150个像素,您必须解决问题:
哪个标签是压缩的,哪个是全宽?
这取决于它们的抗压性优先级。默认情况下,自动布局不会同等地压缩它们,您需要将它们的约束设置为具有相等的宽度。)
如果将行数设置为UIStackView
,0
似乎很难获得标签的布局约束。如果他们的文本长度不同,那么它似乎失去了所有的感觉。在这种情况下,我建议将2个标签的宽度设置为相等,除非这对你不起作用。
答案 1 :(得分:1)
我遇到了类似的问题,水平stackview中有两个标签。 label1,numberOfLines = 1,label2是多行。 (numberOfLines = 0)即使标签2的文本长得多,两个标签的宽度也相等!
要解决此问题,我必须为label1设置宽度约束(基于其当前内容),优先级= 750(高但不要求)。
这样,如果标签具有长文本并且其宽度大于该约束,则标签width =其内容大小
如果标签宽度小于约束,则标签width = constraint。
答案 2 :(得分:0)