我有以下设置:UIView以编程方式添加一组子视图(UILabels),并设置自动布局约束,以便标签之间和UIViews边缘之间的距离为10。目标是UIView根据所有子视图(带动态文本的标签)的内容设置其大小,包括空格。
我使用以下代码,但似乎无法正常工作。 UIView没有调整大小,缩小了标签。
// setup of labelList somewhere else, containing the label data
var lastItemLabel: UILabel? = nil
var i = 1
for item in itemList {
let theLabel = UILabel()
// ... label setup with text, fontsize and color
myView.addSubview(theLabel)
theLabel.translatesAutoresizingMaskIntoConstraints = false
// If it is the second or more
if let lastLabel = lastItemLabel {
theLabel.leadingAnchor.constraint(equalTo: lastLabel.trailingAnchor, constant: 12).isActive = true
theLabel.topAnchor.constraint(equalTo: myView.topAnchor, constant: 10).isActive = true
// if it is the last label
if i == labelList.count {
theLabel.trailingAnchor.constraint(equalTo: myView.trailingAnchor, constant: 12).isActive = true
}
}
// If it is the first label
else {
theLabel.leadingAnchor.constraint(equalTo: myView.leadingAnchor, constant: 12).isActive = true
theLabel.topAnchor.constraint(equalTo: myView.topAnchor, constant: 10).isActive = true
}
lastItemLabel = theLabel
i += 1
}
答案 0 :(得分:1)
由于您需要的内容大于设备的实际显示内容,因此您需要添加UIScrollView
以包含标签。