【发布时间】:2017-01-08 05:06:07
【问题描述】:
尽管为我的按钮添加了前导锚点和顶部锚点的约束(我试图在列表中显示它们),但视图将它们全部显示在视图的左上角。我正在调用许多方法来尝试应用约束,但它们似乎都不起作用。救命!
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()
}
【问题讨论】:
-
发现我的问题,我需要为我所做的约束设置 .isActive = true 。我假设这些函数在创建约束时会产生副作用,如果 isActive 设置为 true,那么它会产生副作用
标签: swift uiview uibutton xcode8 ios10