如何在SwiftUI中禁用iOS的可达性滑动手势?

3
我正在使用SwiftUI中的dragGesture开发我的游戏。我遇到了iOS可达性滑动手势的问题。当用户试图在设备底部向下滑动时,iOS会调用iOS可达性。我需要禁用此iOS功能以适应我的应用程序。我检查了这个链接:Disable iOS Reachability Swipe Gesture in iOS game。下面这个函数似乎是UIKit的答案:
override func preferredScreenEdgesDeferringSystemGestures() -> UIRectEdge {
    return [.bottom]
} 

如何在SwiftUI中使用此函数并禁用iOS Reachability Swipe手势?


你正在使用UIKit或SwiftUI的生命周期吗? - jnpdx
我正在使用SwiftUI生命周期。 - Bank
嗯,这可能有点棘手。我怀疑你需要子类化 UIHostingController 来覆盖该属性,我猜你可以在另一个 UIViewControllerRepresentable 中完成这个操作,但这比在 SceneDelegate 的根级别上执行要丑陋得多。 - jnpdx
1
如何禁用(UIKit)仅向下滑动(底部)可达性手势? - sabiland
2
请查看 https://dev59.com/yUkFtIcB2Jgan1zn9zvG#61221343,其中添加了原生的SwiftUI修饰符。 - Asperi
1个回答

0

正如Asperi所提到的,SwiftUI在iOS 16+中已经为此提供了解决方案。

Apple文档

在我的情况下,我只需添加

.defersSystemGestures(on: bottom)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接