IOS | UILabel не отображается в представлении UIStack - PullRequest
0 голосов
/ 11 апреля 2020

Я пытаюсь создать вертикальный вид стека с меткой пользовательского интерфейса и несколькими горизонтальными видами стека. Однако я вижу только несколько горизонтальных стеков в пользовательском интерфейсе, а не метку пользовательского интерфейса. Вот код

final class FinalView: UIView {

   let mainStackView = UIStackView()

     init() {
        super.init(frame: .zero)

         let label: UILabel = UILabel()
         label.translatesAutoresizingMaskIntoConstraints = false
         label.text = "Sorry ?"

               ...

        let verticalStackView = UIStackView(arrangedSubviews: multiplehorizontalViews)
        verticalStackView.axis = .vertical
        verticalStackView.translatesAutoresizingMaskIntoConstraints = false
        verticalStackView.spacing = 5.0

         mainStackView.addArrangedSubview(label)
         mainStackView.addArrangedSubview(verticalStackView)
         mainStackView.translatesAutoresizingMaskIntoConstraints = false
         mainStackView.axis = .vertical
   }
}

Я вижу только verticalStackView, но не label. Когда я удалил это mainStackView.addArrangedSubview(verticalStackView) из кода, я вижу ярлык. Но когда он там, я не вижу лейбл. Любые идеи по этому вопросу или какие-либо советы по отладке?

1 Ответ

0 голосов
/ 11 апреля 2020

Ваш код работает полностью нормально. Только что проверил на iOS 13 с кодом ниже

let mainStackView = UIStackView()
    mainStackView.translatesAutoresizingMaskIntoConstraints = false
    view.addSubview(mainStackView)

    var vflString = "V:|-[mainStackView]-|"
    var vflConstraints = NSLayoutConstraint.constraints(withVisualFormat: vflString, options: [], metrics: nil, views: ["mainStackView" : mainStackView])
    view.addConstraints(vflConstraints)

    vflString = "H:|-[mainStackView]-|"
    vflConstraints = NSLayoutConstraint.constraints(withVisualFormat: vflString, options: [], metrics: nil, views: ["mainStackView" : mainStackView])
    view.addConstraints(vflConstraints)


    let label: UILabel = UILabel()
    label.translatesAutoresizingMaskIntoConstraints = false
    label.text = "Sorry ?"

    let label1 = UILabel(frame: .zero)
    label1.text = "Label 1"
    let label2 = UILabel(frame: .zero)
    label2.text = "Label 2"
    let label3 = UILabel(frame: .zero)
    label3.text = "Label 3"

    let multiplehorizontalViews = [label1, label2, label3]

    let verticalStackView = UIStackView(arrangedSubviews: multiplehorizontalViews)
    verticalStackView.axis = .horizontal
    verticalStackView.translatesAutoresizingMaskIntoConstraints = false
    verticalStackView.spacing = 5.0
    verticalStackView.distribution = .fillProportionally

    mainStackView.addArrangedSubview(label)
    mainStackView.addArrangedSubview(verticalStackView)
    mainStackView.translatesAutoresizingMaskIntoConstraints = false
    mainStackView.axis = .vertical
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...