SwiftUI передает события касания из UIViewControllerRepresentable для просмотра позади - PullRequest
0 голосов
/ 02 декабря 2019

Я работаю над проектом, который использует смесь UIKit и SwiftUI. В настоящее время у меня есть ZStack, в котором я храню свой контент SwiftUI, мне нужно отобразить UIViewController поверх этого контента. Последний элемент в моем ZStack - это UIViewControllerRepresentable. то есть:

ZStack {
   ...
   SwiftUIContent
   ...
   MyUIViewControllerRepresentative() 
}

Мой накладной UIViewControllerRepresentive является контейнером для других UIViewControllers. Эти дочерние контроллеры представления не всегда должны занимать весь экран, поэтому UIViewControllerRepresentive имеет прозрачный фон, чтобы пользователь мог взаимодействовать с содержимым SwiftUI позади.

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

Я попытался переопределить тест попаданий представлений UIViewControllers следующим образом:

override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
    // return nil if the touch event should propagate to the SwiftUI content
}

Я также попытался полностью удалить события касания в представлении контроллеров представления с помощью:

view.isUserInteractionEnabled = false

Даже это не сработает.

Любая помощь будет очень признательна.

...