将func loadview中声明的self.view约束到视图控制器的局部区域

问题描述 投票:0回答:1

我的子类画布下面的代码用于绘制道具。我试图将画布限制到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 {}
swift view nslayoutconstraint self loadview
1个回答
0
投票

您是否将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),
        ])
© www.soinside.com 2019 - 2024. All rights reserved.