Вложенные UIScrollviews ведут себя странно - PullRequest
0 голосов
/ 26 октября 2018

У меня есть следующие настройки на основе автоматического размещения:

  • Основной viewController, с прокруткой внутри.Scrollview прикреплен к суперпредставлению краев.Этот прокручивает вверх и вниз.Несколько представлений обычного фиксированного размера в верхней части вида прокрутки

  • Еще один вид прокрутки.Этот прокручивает влево и вправо.Второе представление прокрутки содержит несколько таблиц рядом.Идея состоит в том, что пользователь может переключаться между ними.Они оба содержат несколько ячеек, все одинаковой ширины с экраном и высотой 72 пт.Левый имеет, скажем, 6 ячеек, а правый имеет 3.

    Мой первый подход состоял в том, чтобы динамически изменить вторую высоту скроллинга, чтобы соответствовать тому, который когда-либо был виден в данный момент.В конечном итоге произошло то, что переключение между двумя представлениями таблиц (с помощью setContentOffset: animated :) прошло крайне неправильно, если для animated было установлено значение true - это отрегулировало бы смещение контента, чтобы все было за кадром.Фактически он установил бы смещение контента, а затем, когда я переключался, около десятка раз, затем он сбрасывался.Это было странно, я сдался.

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

    Что дает?Какие сценарии приведут к тому, что эти взаимодействия представлений не будут вести себя должным образом?

1 Ответ

0 голосов
/ 05 ноября 2018
  • Используйте разные tableViewController для каждой таблицы.
  • Вставьте их в pageViewController.
  • Добавьте эти несколько нормальных фиксированных размеров в верхней части pageViewControllers view.
  • Соответствует scrollViewDelegate в pageViewController.
  • Передача scrollViewDidScroll из tableViews в pageViewController.
  • Установить вкладку tableViews в соответствии с представлениями фиксированного размеравверху.
  • Измените высоту в соответствии с прокруткой.

Это способ, которым вы можете достичь желаемой функциональности.Надеюсь, это поможет.

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