我有两个完全以编程方式设置的标签。标签二应始终紧靠标签一的右边缘(它们之间有一个小空间)。标签一的宽度设置为等于其内容大小,除非它达到最大宽度。视觉上:
|标记一个| |标签二|
我需要以下约束:
除非达到最大尺寸,否则标签应调整宽度。
标签二应始终靠在标签一的右边缘
如何以编程方式设置这些约束?
答案 0 :(得分:0)
lessThanOrEqualToConstant
的 widthAnchor
应该可以完成这项工作。
let labelOne = UILabel()
labelOne.text = "label1"
let labelTwo = UILabel()
labelTwo.text = "label2"
labelOne.translatesAutoresizingMaskIntoConstraints = false
labelTwo.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(labelOne)
view.addSubview(labelTwo)
NSLayoutConstraint.activate([
labelOne.topAnchor.constraint(equalTo: view.topAnchor),
labelOne.leadingAnchor.constraint(equalTo: view.leadingAnchor),
labelOne.widthAnchor.constraint(lessThanOrEqualToConstant: 100),
labelTwo.leadingAnchor.constraint(equalToSystemSpacingAfter: labelOne.trailingAnchor, multiplier: 1),
labelTwo.topAnchor.constraint(equalTo: view.topAnchor)
])
答案 1 :(得分:0)
我同意@Kevvv 的回答,但您还必须将 labelTwo 的尾随约束分配给视图的尾随,因为如果内容大小更大,则 labelTwo 的宽度会增加。
只需添加一个或多个约束
labeltwo.trailingAnchor.constraint(greaterThanOrEqualTo: view.trailingAnchor)