Есть запрос относительно UIStackView
.По сути, представление стека не отображается правильно, если я установил его подпредставления после viewdidload ()
Вот код, который я использую для вставки подпредставлений:
func updateCategories(titles: [String]){
categoriesStackView.subviews.forEach{categoriesStackView.removeArrangedSubview($0)}
categoryButtons = titles.map { (title) in
let v = UIButton(frame: .zero)
v.translatesAutoresizingMaskIntoConstraints = false
v.setTitle(title, for: .normal)
v.setTitleColor(UIColor(hex: "#6A6B93"), for: .selected)
v.titleLabel?.font = UIFont.boldSystemFont(ofSize: 24)
v.setTitleColor(UIColor.sevenLightText, for: .normal)
return v
}
categoryButtons.forEach{categoriesStackView.addArrangedSubview($0)}
}
Создание Stackview + Прикрепленные ограничения:
lazy var categoriesStackView: UIStackView = {
let v = UIStackView(frame: .zero)
v.translatesAutoresizingMaskIntoConstraints = false
v.axis = .horizontal
v.spacing = 20
return v
}()
...
NSLayoutConstraint.activate([
categoriesStackView.leftAnchor.constraint(equalTo: titleButton.leftAnchor, constant: 15),
categoriesStackView.heightAnchor.constraint(equalToConstant: 60),
categoriesStackView.topAnchor.constraint(equalTo:self.titleButton.bottomAnchor, constant: 40)
])
Если я вручную вызываю updateCategories
в viewDidLoad
, рендеринг в порядке, но если я пытаюсь установить, после того как он не виден и кнопки не видны.