我的UITableViewCell
中有两个标签,并且设置了约束以使它们位于单元格的中心:
func setConsraints() {
// horizontal constraints
// vertical constraints
mainLabel.centerYAnchor.constraint(equalTo: contentView.centerYAnchor, constant: someVariable).isActive = true
infoLabel.centerYAnchor.constraint(equalTo: contentView.centerYAnchor, constant: -someVariable).isActive = true
}
但是因为常量是一个变量,所以有时看起来像这样:
我尝试在mainLabel
和infoLabel
之间添加一个约束,并优先考虑,但这些解决方案均无效。
如何为这两个标签添加“最小”约束,以使它们不会彼此重叠,而是同时将其居中放置在UITableViewCell
上并保持一定距离?
答案 0 :(得分:3)
答案 1 :(得分:1)
您是否认为这是替代?
func setConsraints() {
// horizontal constraints
// vertical constraints
mainLabel.bottomAnchor.constraint(equalTo: contentView.centerYAnchor, constant: -someVariable).isActive = true
infoLabel.topAnchor.constraint(equalTo: contentView.centerYAnchor, constant: someVariable).isActive = true
}
否则,您需要获取字符串的高度,并设置相对于该字符串的中心锚。有一些字符串扩展名,可让您获取特定宽度的字符串高度,例如answer。您可以使用它来获取标签的高度,然后在方法中将其一半添加到someVariable
中。
编辑:我注意到您为mainLabel
设置了一个正常数,而为infoLabel
设置了一个负常数。如果您想让mainLabel
位于中心位置上方,则需要为mainLabel
添加负值,而为{{1}添加相反的值}。