UIButtons внизу UIScrollView не работает

Я создал UIScrollView в своих раскадках и добавил 12 UIButtons в контейнер View, который находится внутри UIScrollView.

при работе на симуляторе iPhone 5s, 9 из кнопок можно увидеть на экране, остальные кнопки можно увидеть только при прокрутке вниз.

можно взаимодействовать с 9 кнопками, которые изначально можно увидеть на экране. Однако 3 кнопки в нижней части прокрутки (которые должны быть прокручены для просмотра) не могут взаимодействовать с.

Я запустил приложение на симуляторе iPhone 6, которое отображает все 12 кнопок на экране без прокрутки и работают нижние 3 кнопки.

Я использую автозапуск.

Я пробовал возиться с contentSize UIScrollView, и это не помогает.

Ответы

Ответ 1

Кажется, вам нужно увеличить высоту кадра в представлении контейнера. contentSize scrollView влияет только на то, как он будет прокручиваться, что здесь не имеет значения.

Если кнопка находится вне контейнера, она все равно будет отображаться. Однако он не может реагировать на какое-либо событие касания.

Ответ 2

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

чтобы ваше представление содержимого увеличивало его высоту, вам нужно добавить ограничение по высоте, а затем назначить его розетке, чтобы вы могли легко манипулировать им с помощью кода. затем установите приоритет ограничения высоты представления содержимого на 1000 ( "требуется" ) и установите для представления содержимого равную ширину: просмотр приоритета ограничения до 750 (высокий).

Ответ 3

Для меня было всего лишь Снимите флажок с помощью флажка Настроить прокрутки в в раскадровке этого ViewController.

введите описание изображения здесь

PS: Вышеуказанные ответы не сработали для меня.

Ответ 4

Другой вариант - уменьшить приоритет ограничения Content View.Center Y.

В Xcode 9 я выложил ContentView по мере необходимости, и кнопка была расширена под представлением на iPhone 5. Я динамически изменял размер scrollView.contentSize.height и contentView.frame в контроллере представления. Прокрутка scrollView для меня, но я все еще не мог выбрать кнопку и видел предупреждения в Раскадке.

Как только я опустил приоритет в Center Y Alignment Constraint для contentView, предупреждения в Storyboard исчезли, и я смог прокрутить в нижней части scrollView и выбрать кнопку на симуляторе iPhone 5.

введите описание изображения здесь

ПРИМЕЧАНИЕ. Я все еще проверяю размер устройства и изменяю размер значения scrollView.contentSize.height в viewWillLayoutSubviews() для небольших устройств.

override func viewWillLayoutSubviews() {
        super.viewWillLayoutSubviews()
        scrollView.contentSize.height = (UIDevice.current.isSmallDevice) ? 560 : contentView.frame.size.height
    }

(UIDevice.current.isSmallDevice - это вызов для расширения UIDevice, который возвращает bool, определяемый размером экрана)

Ответ 5

Добавьте все подпрограммы из контейнера в ScrollView. И спрячьте контейнер. Убедитесь, что контейнер (ContainerView of scrollView) также должен быть подвид прокрутки.

Ответ 6

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

like  Scroolview -> ContainerView--> UIButtons