Отмените прокрутку в UIScrollView, если прокрутка в подпредставлении (содержащем прокручиваемый UICollectionView) (SWIFT) - PullRequest
1 голос
/ 28 апреля 2020

У меня есть текущая структура: (-> обозначает подпредставление)

UIScrollView

  • pageOne: UIView
  • pageTwo: UIView -> коллекция: UICollectionView

(pageOne и pageTwo являются подпредставлениями UIScrollView. PageTwo содержит CollectionView)

Я пытаюсь отменить прокрутку родительского UIScrollView, если в коллекции обнаружены прокрутки (перетаскивания). Я сделал это, создав UIPanGestureRecognizer для pageTwo. При обнаружении перетаскивания я установил:

UIScrollView.isScrollingEnabled = false collection.isScrollingEnabled = true

Когда UIPanGestureRecognizer.State.ended (перетаскивание на страницу два остановки), я установил обратно

UIScrollView.isScrollingEnabled = true collection.isScrollingEnabled = false

Я проверил, что функция правильно определяет перетаскивание / завершение перетаскивания, но по какой-то причине, хотя перетаскивание в пределах pageTwo правильно обнаружено, UIScrollView продолжает прокручивать. Более конкретно, после перетаскивания в pageTwo и успешного изменения прокрутки UIScrollView в false и прокрутки коллекции в true, первоначальное нажатие заставляет UIScrollView прокручивать (страница технически, поскольку isPagingEnabled имеет значение true для ScrollView), обратно в начало pageOne.

  1. collection & UIScrollView делегат, равный классу viewController.
  2. DelayTouchDown верно для UIScrollView.
  3. collection & scrollView, оба прокручивают по вертикали

Какие-либо предложения?

(Извините, если мое форматирование этого вопроса неверное, при первой публикации)

1 Ответ

0 голосов
/ 28 апреля 2020

* 1001. 1009 * установлен на true (вместо переключения на false, как указано выше), пользовательский интерфейс работает, как и ожидалось.

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