我遇到标签限制问题。
我的目标是在tableViewCell的同一Y坐标上有2个标签。其中一个标签固定在左侧,另一个标签固定在右侧。
就像那样:
[This is the first label] [Second]
第一个标签应该具有基于其必须显示的文本的动态宽度,但它应该结束大约20个点到第二个标签。
我尝试了很多约束,但有时第一个标签似乎将第二个标签推出视图,有时第一个标签只是重叠第二个标签,如下例所示:
第一个标签有以下限制:
Top Space to Superview
Leading Space to Superview
Bottom Space to a third label
Trailing Space to THE second Label (<= 20)
正确显示两个标签的正确方法是什么?
提前致谢,感谢您的帮助!
修改
通过为第二个标签提供最大宽度来尝试解决方案。现在,它随机工作或不工作。我根本不懂。
答案 0 :(得分:10)
就像其他人所说的那样,你需要将左边标签到右边标签的尾随约束设置为大于或等于,这样两者之间的间距至少 20
但是,您还需要先指定哪个标签截断。如果不这样做,iOS将自行选择,这可能是您当前解决方案仅在某些时候工作的原因。这是内容压缩阻力优先级发挥作用的地方。为要首先截断的标签设置较低的值。
您可以在尺寸检查员下的故事板上执行此操作。
我假设您希望首先截断左侧标签。在这种情况下,请确保左侧标签的水平内容抗压强度优先于右侧标签。请注意上面我刚刚将它删除到749,因为默认值是750。
查看this answer,了解有关内容压缩和内容拥抱的详细信息。
答案 1 :(得分:0)
如果你右边的第二个标签有固定宽度或最大宽度:)这里你可以做到:)
总的来说,标签的约束应该如何出现
|-(distance_to_left_Label)-[left-label]-(>=20)-[right_lable(your_value)]-(distance_to_right)-|
希望我的回答有所帮助:)