iOS AutoLayout约束动态宽度

image.png

先看一下设计图, 一个 cell, 上面添加两竖排的Label, 两竖排的 Label 宽度都是不固定的,当内容过长的时候,会在水平方向压缩, 选择压缩左竖排的长度。
1, 确定左侧 label 的左,上边距
2, 确定右侧 label 的右,上边距

看一下内容, 没有问题


image.png

当两侧 Label 的内容增多时, 中间内容就会出现重叠


image.png

3, 为了避免重叠, 需要给两个 Label 添加水平间距(减少 Label 的内容,让两个 label 中间有间距, 方便添加水平间距)。


image.png

现在显示是又正常的,再次增加左侧 Label 的内容,就会报错, 是两个 label 的宽度加上水平间距不等于 cell 的长度, 需要压缩其中一个 Label,但是两个 label 的压缩等级一样,系统就不知道选择哪个 label 压缩。


image.png

4, 这个时候,需要给两个 Label 不同的优先级,让系统根据优先级选择压缩对应的 label, 设置右侧 label 的膨胀优先级与抗压缩优先级各增加1


image.png

当水平长度不够时, 系统会优先选择左侧 label 压缩

你可能感兴趣的:(iOS AutoLayout约束动态宽度)