Отключить жест, чтобы раскрыть модальное представление формы / страницы - PullRequest
4 голосов
/ 22 июня 2019

В iOS 13 модальные презентации, использующие форму и стиль листа, могут быть отклонены жестом панорамирования.Это проблематично на одном из моих листов формы, потому что пользователь рисует в этом поле, которое мешает жесту.Он тянет экран вниз вместо рисования вертикальной линии.

Как можно отключить вертикальное движение, чтобы отклонить жест в контроллере модального представления, представленном в виде листа?

Настройка isModalInPresentation = true все еще позволяетлист, который нужно снять, он просто не уволит.

1 Ответ

3 голосов
/ 23 июня 2019

Этот жест можно найти в свойстве контроллера модального представления presentedView.Как я отлаживал, массив gestureRecognizers этого свойства имеет только один элемент, и при печати он выглядел примерно так:

UIPanGestureRecognizer: 0x7fd3b8401aa0 (_UISheetInteractionBackgroundDismissRecognizer);

* 1010Таким образом, чтобы отключить этот жест, вы можете сделать это следующим образом:
let vc = UIViewController()

self.present(vc, animated: true, completion: {
  vc.presentationController?.presentedView?.gestureRecognizers?[0].isEnabled = false
})

Чтобы снова включить его, просто установите isEnabled обратно на true:

vc.presentationController?.presentedView?.gestureRecognizers?[0].isEnabled = true

Обратите внимание, что iOS 13Все еще в бета-версии, поэтому в следующем выпуске может быть добавлен более простой подход.

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