0

我在子类画布下面的代码用于绘制属性。我正在尝试将画布限制在 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 {}
4

1 回答 1

0

您是否将画布添加为视图的子视图?您需要在设置约束之前执行此操作:

        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),
        ])
于 2019-10-26T05:09:54.873 回答