Dan*_*ndy 2 ios sprite-kit swift
我有一个 iOS 游戏,在屏幕底部附近有一些可以滑动的控件。当玩家向下滑动时,如果他们的手指滑离屏幕底部,也会触发Reachability 无障碍手势。然后滑下屏幕,将这些控件移出页面并隐藏游戏的一半。显然,这不是玩家的意图,并且要求他们的滑动非常具体,这不是很直观或很有趣。
在圆形 iPhone 套件上,控件距离屏幕底部大约 100 pt,为主页指示器留出空间,这有助于在许多情况下防止出现此问题,但在方形设备上,它们更接近 10 pt:
在我的初步测试中,我发现即使在屏幕上开始高达 300pt 的滑动一直持续到屏幕底部,也会触发可达性。因此,将我的控件调高并不是解决方案,因为这会使它们在屏幕上处于死角(也阻挡了游戏的焦点),并且在某些手机上无法舒适地使用手指。
由于 Reachability 在我的游戏中没有任何用处(屏幕的上三分之一没有控件用于将您的手保持在屏幕的下部)我真的想要一种方法来防止这个。理想情况下,在游戏过程中通过某种方式通知系统它是不必要的,因此我可以在非游戏菜单中允许它 - 但我可能在梦想那部分。我也不认为要求用户在整个系统范围内禁用此解决方案是一个很好的解决方案,因为这是我的应用程序的冲突,并且需要他们在其他地方改变他们的行为。
是否有关于如何处理与此特定可访问性手势的冲突的任何指导、示例或建议?
你不想禁用它,你想推迟它。
要使用它,您需要覆盖 preferredScreenEdgesDeferringSystemGestures 以推迟您需要延迟的屏幕部分。
在你的情况下:
override func preferredScreenEdgesDeferringSystemGestures() -> UIRectEdge {
return [.bottom]
}
Run Code Online (Sandbox Code Playgroud)
现在,如果您以动态方式执行此操作,则还需要调用setNeedsUpdateOfScreenEdgesDeferringSystemGestures()以通知 iOS 您的规则正在更改。
| 归档时间: |
|
| 查看次数: |
1099 次 |
| 最近记录: |