SwiftUI + UIView触摸事件冲突

时间:2020-10-27 10:45:13

标签: view uiview swiftui uigesturerecognizer uiviewrepresentable

我有一个包含UIViewRepresentable(某些UIView)的视图。该UIView有一个按钮作为子View,它具有自己的动作。我有2个问题:

如果SwiftUI视图未附加任何点击手势,则UIView的按钮事件(UIControlEventTouchUpInside)不会在单击时触发,而是仅在长按时触发。 如果SwiftUI视图附加了轻击手势,则可以正常触发UIView的按钮,但是SwiftUI视图的事件也可以触发(同时触摸) SwiftUI的View的.gesture修改器允许使用不同的蒙版附加手势,但实际上它们仅考虑了附加到SwiftUI Views层次结构的手势,似乎没有考虑附加到其UIView子视图的手势

VStack(spacing: 0) {
    textfield        <-- UIView inside that has own action
}.onTapGesture {
    endEditing()      <-- this called together with UIView's action
}

1 个答案:

答案 0 :(得分:0)

当我触摸放置在 UIViewRepresentable 中的 swiftUI 按钮时发生了碰撞。这个解决方案对我有用。

MyUIKitRepresentableView()
    .allowsHitTesting(false)