Программно добавленные ограничения не всегда работают - PullRequest
0 голосов
/ 14 мая 2018

Я программно добавляю эти ограничения в ячейку, чтобы сделать отступ для вложенных вкладок.В большинстве случаев это работает, однако, как показано на скриншоте, это не всегда работает.Код ниже показывает ограничения.enter image description here

let views: [String:Any] = ["parent": self, "view": self.borderView, "subview": self.backView, "button1": self.actionButton, "label": self.name, "button2": self.nextButton]
    let margin1 = NSLayoutConstraint.constraints(withVisualFormat: "|-\(margin*level+8)-[subview]-8-|",
        options: .alignAllCenterY,
        metrics: nil,
        views: views)

    let margin2 = NSLayoutConstraint.constraints(withVisualFormat: "|-\(margin*level+8)-[view]-8-|",
        options: .alignAllCenterY,
        metrics: nil,
        views: views)

    let margin3 = NSLayoutConstraint.constraints(withVisualFormat: "|-8-[button1]-[label]-[button2]-8-|",
                                                 options: .alignAllCenterY,
                                                 metrics: nil,
                                                 views: views)

    self.addConstraints(margin1)
    self.addConstraints(margin2)
    self.addConstraints(margin3)

    self.setNeedsUpdateConstraints()
    self.updateConstraintsIfNeeded()
    self.updateConstraints()

Я использую автоматическое расположение, и эти ячейки находятся в своем собственном файле xib.У кого-нибудь есть подсказка?

...