gpt4 book ai didi

ios - 在 iOS 游戏中禁用 iOS 可达性滑动手势

转载 作者:行者123 更新时间:2023-12-01 18:03:43 28 4
gpt4 key购买 nike

我有一个 iOS 游戏,在屏幕底部附近有一些可以滑动的控件。当玩家向下滑动时,如果他们的手指从屏幕底部滑出,也会触发 Reachability 可访问性手势。然后向下滑动屏幕,将这些控件移出页面并隐藏一半的游戏。显然,这不是玩家的意图,并且要求他们的滑动非常具体,这不是很直观或有趣。

在圆形 iPhone 套件上,控件距离屏幕底部大约 100pt,为主页指示器留出空间,这有助于在许多情况下防止此问题,但在方形设备上,它们更接近 10pt:

Swipe down example

在我的初步测试中,我发现即使从屏幕上开始高达 300pt 的滑动一直持续到屏幕底部,也会触发可达性。因此,将我的控件提高得更高并不是解决方案,因为这会使它们死在屏幕中心(也挡住了游戏的焦点),并且在某些手机上无法舒适地伸手可及。

由于可达性在我的游戏中没有任何用处(屏幕上三分之一处没有用于将您的手保持在屏幕下半部分的控件)我真的想要一种方法来防止这。理想情况下,通过某种方式通知系统在游戏过程中这是不必要的,因此我可以在非游戏菜单中允许它 - 但我可能在做梦。
我也不认为要求用户在整个系统范围内禁用此系统不是一个很好的解决方案,因为这是我的应用程序的冲突,这需要他们在其他地方改变他们的行为。

关于如何处理与此特定可访问性手势的冲突,是否有任何指导、示例或建议?

最佳答案

你不想禁用它,你想推迟它。

https://developer.apple.com/documentation/uikit/uiviewcontroller/2887512-preferredscreenedgesdeferringsys

要使用此功能,您需要覆盖 preferredScreenEdgesDeferringSystemGestures 以推迟您需要延迟的屏幕部分。

在你的情况下:

override func preferredScreenEdgesDeferringSystemGestures() -> UIRectEdge {
return [.bottom]
}

现在,如果您以动态方式执行此操作,您还需要调用 setNeedsUpdateOfScreenEdgesDeferringSystemGestures()通知 iOS 你的规则正在改变。

关于ios - 在 iOS 游戏中禁用 iOS 可达性滑动手势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60694506/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com