我无法让我的名字转换为。
override func setupViews() {
super.setupViews()
addSubview(nameLbl)
addConstraints([NSLayoutConstraint.constraints(withVisualFormat: "H:|[v0]|", options: [], metrics: nil, views: nameLbl)])
}
}
答案 0 :(得分:0)
问题出在这里
views: nameLbl
你必须传递一个字典 - > [String:Any]
作为参数而不是UILabel
,因为错误状态为
views:[String:Any]
//
正确的语法就像这样
let views: [String: UILabel] = ["nameLbl": nameLbl]
NSLayoutConstraint.constraints(withVisualFormat: "H:|[nameLbl(150)]|", options: [], metrics: nil, views: views)
答案 1 :(得分:0)
视图需要字典而不是视图。您需要使用字典(在您的情况下),如下所示:
let views: [String: Any] = ["v0": nameLbl]
它们:
addConstraints([NSLayoutConstraint.constraints(withVisualFormat: "H:|[v0]|", options: [], metrics: nil, views: views)])
答案 2 :(得分:0)
函数constraints(withVisualFormat:options:metrics:views:)
为[String:Any]
参数采用类型为views
的字典。您已在约束字符串中命名了标签v0
,因此您应该使用
let constraints = NSLayoutConstraint.constraints(
withVisualFormat: "H:|[v0]|",
options: [],
metrics: nil,
views: ["v0" : nameLbl])
addConstraints(constraints)
(请注意,函数constraints(withVisualFormat:options:metrics:views:)
会返回一组约束,因此您无需将其括在大括号中。如果执行将其括在大括号中,您将拥有一个数组包含一系列约束,这不是你想要的。)