Как программно добавить пользовательский UIView в Stackview поверх UIScrollView?

#swift #uistackview

#swift #uistackview

Вопрос:

У меня есть ViewController, который имеет UIScrollView с вертикальным UIStackView поверх него. Все работает нормально, если я добавлю UIView в stackview с ограничением высоты через конструктор интерфейсов. Например, 3 вида с высотой 600 пикселей. Если я запускаю приложение, я могу без проблем прокручивать и просматривать все три добавленных представления. Для stackview работает нормально.

Если я попытаюсь добавить представление в stackview с помощью кода с помощью addArrangedSubView, я увижу, что первое представление, которое я добавил, если я «принудительно» прокручиваю вниз, но не два других. Не имеет значения, устанавливаю ли я ограничения по высоте для добавляемых мной представлений, и не имеет значения, устанавливаю ли я intrinsicContentSize для пользовательских представлений.

Как я могу заставить вид прокрутки расширять область прокрутки при добавлении кода корыта. ?

Спасибо 🙂

Комментарии:

1. Пожалуйста, укажите ваши конкретные сегменты кода, чтобы люди могли вам лучше помочь!

2. Попробуйте обновить свой UIScrollView contentSize с scrollView.contentSize = CGSize(width: <your-width>, height: <your-height>) помощью после добавления упорядоченных вложенных представлений.

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

Ответ №1:

Просто предположение из-за отсутствия дополнительной информации:

Проблема может быть связана с тем, как устанавливаются ограничения между представлением прокрутки и его дочерним элементом, представлением стека.

вы должны добавить следующие ограничения:

  • исправьте края вида стека (верхний, передний, задний, нижний) для просмотра прокрутки
  • установите ограничение ширины между видом стека и видом прокрутки
  • также установите ограничение высоты между представлением стека и видом прокрутки, установите его приоритет на низкий (250)

Для получения дополнительной информации, пожалуйста, ознакомьтесь с разделом «настройка UIStackView с автоматической компоновкой», например, здесь: https://medium.com/@pradeep_chauhan/how-to-configure-a-uiscrollview-with-auto-layout-in-interface-builder-218dcb4022d7

Если это не сработает, пожалуйста, предоставьте соответствующий код и скриншоты вашей настройки Interface Builder.