尽管在我的按钮的前导和顶部锚点上添加了约束(我试图在列表中显示它们),但视图会在视图的左上角显示所有这些。我正在调用许多方法来尝试应用约束,但它们似乎都没有工作。救命啊!
func displayButtonArray(buttons: [UIButton]) {
var previousButton: UIButton = buttons[0]
for (i, button) in buttons.enumerated() {
button.setTitle("SampleButton", for: .normal)
button.setTitleColor(.black, for: .normal)
button.sizeToFit()
let margins = self.view.layoutMarginsGuide
button.leadingAnchor.constraint(equalTo: margins.leadingAnchor)
if i == 1 {
button.topAnchor.constraint(equalTo: margins.topAnchor, constant: CGFloat(5.0))
} else {
button.topAnchor.constraint(equalTo: previousButton.bottomAnchor, constant: CGFloat(10.0))
}
previousButton = button
button.translatesAutoresizingMaskIntoConstraints = false
button.setNeedsUpdateConstraints()
button.setNeedsLayout()
self.view.addSubview(button)
}
self.view.setNeedsUpdateConstraints()
self.view.setNeedsLayout()
self.view.layoutSubviews()
}
答案 0 :(得分:0)
正如您所指出的,约束已定义但未激活。
我可以补充一点,就像Apple提到的那样,AutoLayout约束应该一起激活。
您可以逐个激活它们,但一起激活它们会更有效;导致更好的表现。