Добавить обновление содержимого стека программно - PullRequest
0 голосов
/ 24 сентября 2019

Есть запрос относительно 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, рендеринг в порядке, но если я пытаюсь установить, после того как он не виден и кнопки не видны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...