Несмотря на добавление ограничений на ведущие и верхние якоря для моих кнопок (я пытаюсь отобразить их в списке), представление отображает их все в левом верхнем углу представления. Я использую множество методов, чтобы попытаться применить ограничения, но ни один из них, похоже, не работает. Помогите!Отображение кнопок с программными ограничениями
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, тогда у него будут побочные эффекты – baoskees