使用 NSLayout 以编程方式向 UILabel 添加约束



我正在尝试将UILabel添加到我的ViewController并使用NSLayout来约束它。然而,当我尝试使用NSLayout时,UILabel甚至没有出现在我的视野中。有人知道解决方案吗?

excersice1label = UILabel()
excersice1label.textAlignment = .center
excersice1label.text = "Excercise 1"
excersice1label.font = UIFont.boldSystemFont(ofSize: 20)
view.addSubview(excersice1label)
NSLayoutConstraint.activate([
excersice1label.centerXAnchor.constraint(equalTo: view.centerXAnchor),
excersice1label.centerYAnchor.constraint(equalTo: view.centerYAnchor ,constant: -110),
excersice1label.widthAnchor.constraint(equalToConstant: view.frame.width - 64)
])

您需要添加以下行:

exercise1label.translatesAutoresizingMaskIntoConstraints = false

根据苹果文档:

如果此属性的值为 true,则系统会创建一组 复制视图指定的行为的约束 自动调整蒙版大小。如果要使用自动布局动态 计算视图的大小和位置,您必须设置此 属性为 false,然后提供一个非歧义、非冲突 视图的约束集。

最新更新