ScrollView прокручивает из ограничений - PullRequest
0 голосов
/ 04 марта 2020

У меня есть UIScrollView и UIStackView внутри. Моя проблема заключается в том, что при прокрутке содержимое выходит за пределы своих ограничений. Почему это происходит? Должен ли я установить некоторые другие constraints?

enter image description hereenter image description here

Это мои constraints:

view.addSubview(theScrollView)
theScrollView.addSubview(theStackView)

    theScrollView.topAnchor.constraint(equalTo: theLabel.bottomAnchor, constant: 20).isActive = true
    theScrollView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 30).isActive = true
    theScrollView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -30).isActive = true
    theScrollView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true

    theStackView.topAnchor.constraint(equalTo: theScrollView.topAnchor).isActive = true
    theStackView.leadingAnchor.constraint(equalTo: theScrollView.leadingAnchor).isActive = true
    theStackView.trailingAnchor.constraint(equalTo: theScrollView.trailingAnchor).isActive = true
    theStackView.bottomAnchor.constraint(equalTo: theScrollView.bottomAnchor).isActive = true
    theStackView.widthAnchor.constraint(equalTo: theScrollView.widthAnchor).isActive = true

theLabel - это "Konto erstellen" наверху. Есть идеи, как мне это вместить?

Если что-то неясно, просто дайте мне знать.

1 Ответ

1 голос
/ 04 марта 2020

В вашем SignUpViewController классе ...

  • вы добавляете theScrollView к view
  • вы добавляете theStackView к theScrollView
  • вы добавляете представления в theStackView
    • theStackView.addArrangedSubview (emailView)
    • theStackView.addArrangedSubview (anzeigeNameView)
    • theStackView.addArrangedSubview (usernameView)

Но Вы затем добавляете другие виды к view:

  • . .addSubview (emailTextField)
  • view.addSubview (anzeigeNameTextField)
  • view.addSubview (usernameTextField)

Затем вы ограничиваете эти представления для представлений в theStackView. Когда вы прокручиваете содержимое, эти представления перемещаются вместе с подпредставлениями стекового представления, но они находятся вне иерархии представления прокрутки.

Вместо этого вам нужно выполнить this:

    view.addSubview(theScrollView)
    theScrollView.addSubview(theStackView)

    theStackView.addArrangedSubview(emailView)
    emailView.addSubview(emailTextField)
    //view.addSubview(emailTextField)

    theStackView.addArrangedSubview(anzeigeNameView)
    anzeigeNameView.addSubview(anzeigeNameTextField)
    //view.addSubview(anzeigeNameTextField)

    theStackView.addArrangedSubview(usernameView)
    usernameView.addSubview(usernameTextField)
    //view.addSubview(usernameTextField)

Теперь ваши текстовые поля будут подпредставлениями соответствующих им представлений, которые являются упорядоченными подпредставлениями стекового представления.

Возможно, вам придется настроить ограничения после этого.

...