下面我的快速代码试图声明2个约束,它们分别充当前导和前锚约束。我可以在情节提要中执行此操作,但是我不知道仅使用代码而不执行情节提要如何执行此操作。这是我的目标。我下面的代码没有编译,但必须关闭。
@IBOutlet var dx : UITextField!
var lead = NSLayoutConstraint()
var top = NSLayoutConstraint()
override func viewDidLoad() {
NSLayoutConstraint.activate([
dx.topAnchor.constraint(equalTo: top, constant: 50),
dx.leadingAnchor.constraint(equalTo: lead, constant: 50)
]
假设您只是忘了粘贴在大括号中,那么您的问题是top和lead只是您在上面创建的任意布局约束。您想将其固定到您的superView的约束。
NSLayoutConstraint.activate([
dx.topAnchor.constraint(equalTo: view.topAnchor, constant: 50),
dx.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 50),
])
要在外部声明这些约束,请尝试类似的事情
class myVC: UIViewController {
var myButton: UIButton!
var buttonWidthConstraint: NSLayoutConstraint!
var buttonHeightConstraint: NSLayoutConstraint!
// Other ViewController Stuff
override func viewDidLoad() {
myButton = UIButton(frame: .zero)
buttonWidthConstraint = myButton.widthAnchor.constraint(equalToConstant: 50)
buttonHeightConstraint = myButton.heightAnchor.constraint(equalToConstant: 25)
NSLayoutConstraint.activate([buttonWidthConstraint, buttonHeightConstraint])
}
}