我的子类画布下面的代码用于绘制道具。我试图将画布限制到viewdidload中的特定区域。问题在于func loadView阻止了viewdidload中的约束起作用。在调试区域中,它指出无法同时满足约束。
var canvas = Canvas()
override func loadView() {
self.view = canvas
}
override func viewDidLoad() {
super.viewDidLoad()
canvas.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate ([
canvas.trailingAnchor.constraint(equalTo: view.centerXAnchor, constant :37.5),
canvas.topAnchor.constraint(equalTo: view.centerYAnchor, constant : 225),
canvas.widthAnchor.constraint(equalToConstant: 75),
canvas.heightAnchor.constraint(equalToConstant: 50),
])
}
class Canvas: UIView {}
您是否将canvas添加为view的子视图?您需要在设置约束之前执行此操作:
canvas.translatesAutoresizingMaskIntoConstraints = false
self.view.addSubview(canvas)
NSLayoutConstraint.activate ([
canvas.trailingAnchor.constraint(equalTo: view.centerXAnchor, constant :37.5),
canvas.topAnchor.constraint(equalTo: view.centerYAnchor, constant : 225),
canvas.widthAnchor.constraint(equalToConstant: 75),
canvas.heightAnchor.constraint(equalToConstant: 50),
])