我有一个带有两个UILabel的栏:
[LeftMsg RightMsg]
我想设定的规则是:
RightMsg
始终完全可见,右对齐并占据所需空间。LeftMsg
左对齐,占用余下的房间。例如,如果LeftMsg
读取"This very long message does not fit the bar"
,则必须显示如下:
[The very long message does n... RightMsg]
我按如下方式设置水平自动布局约束:
LeftMsg.leading = Superview.leading
RightMsg.trailing = Superview.trailing
LeftMsg.trailing <= RightMsg.leading
(如果我在最后一个约束中使用相等,XCode告诉内容优先级不明确。)
现在它的工作原理如下:
[The very long message does not fit the...]
这不是我需要的。
任何人都可以建议如何正确设置约束以实现我的需求?
答案 0 :(得分:5)
我认为您可以为左侧标签设置比右侧消息标签更低的水平拥抱优先级,同时为右侧消息标签设置比左侧消息标签更高的水平抗压性优先级。
例如,您可以为此标签设置内容拥抱优先级和压缩阻力优先级。
左标签:内容拥抱优先级(H:250,V:251) 抗压强度优先(H:750,V:750)
右标签:内容拥抱优先级(H:251,V:251) 抗压强度优先(H:751,V:750)
您可以在此tutorial中查看有关内容拥抱和抗压缩性的更多信息。
答案 1 :(得分:4)
答案 2 :(得分:-2)