ScrollView со StackView и фиксированным нижним колонтитулом снаружи - PullRequest
0 голосов
/ 14 июня 2019

Xcode 10, Swift 5 (это должно быть выполнено исключительно в раскадровке)

Текущий макет:

- ChildView (child View of very first default view)
    - ButtonView
        - ScrollView
            - VerticalStackView
                - Button
                - Button
                - ...
    - FooterView
         - HorizontalStackView
            - Button A
            - Button B

Какие ограничения мне нужны, чтобы всегда держать нижний колонтитул внизу и делать прокрутку UIStackView позади него, сохраняя при этом фиксированную высоту для каждой кнопки в UIStackView?

1 Ответ

1 голос
/ 14 июня 2019

Похоже, что эта настройка вызывает множество проблем, начиная с кнопок внутри, которые нельзя нажимать (или UITextField s, с которыми невозможно взаимодействовать), до UIScrollView не прокручиваемой или ошибки «Неоднозначность размера контента» (описано здесь ) - только потому, что одно ограничение не установлено правильно.

Результат:

enter image description here

Если имеется меньше кнопок, которые могут отображаться одновременно, они не будут прокручиваться, а просто отобразят черный фон под последней кнопкой.

Какчтобы добраться:

Ограничения устанавливаются с помощью кнопки «Добавить новые ограничения» под окном предварительного просмотра.

enter image description here

ChildView:

  • Трейлинг / Лидер / Низ: от 0 до Superview
  • Равная высота: до Безопасной области:
    • Перетаскивание изChildView в безопасную зону и выберите «Равные высоты»

1.FooterView:

  • Трейлинг / Ведущий / Низ: от 0 до Superview
  • Высота: равно 50
  • Верх к ButtonView:
    • Управление- перетащить из FooterView в ButtonView
    • Выберите «Top»
    • Щелкните новое ограничение, чтобы открыть его в инспекторе (FooterView.Top равно ButtonView.Bottom)

enter image description here

2.ButtonView:

  • Trailing / Leading / Top: от 0 до Superview
  • от нижнего до FooterView (уже объяснено выше)

2,1,ScrollView (черный):

  • Трейлинг / Ведущий / Нижний / Верхний: от 0 до Superview
  • Ограничения нижний / верхний удерживают ScrollView от "перетекания"

2.1.1.VerticalStackView:

  • Выравнивание / Распределение: заливка
  • Трейлинг / Лидер / Низ / Верх: от 0 до суперпредставления
  • Равная ширина для ButtonView:
    • Удерживая нажатой клавишу Control из VerticalStackView в ButtonView и выберите «Равные ширины»
    • Это отключает горизонтальную полосу прокрутки ScrollView

2.1.1.1.Кнопка (серая):

  • Высота: 50
  • VerticalStackView позаботится об остальном

Конечно, вы также можете заменить кнопкив UIScrollView с представлениями для создания некоторого типа формы.

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