0

实现一种“遇险呼叫”按钮,其工作方式如下:

  1. 用户启动应用程序并用手掌覆盖屏幕
  2. 一段时间过去,用户可能会在此期间引入额外的触摸或删除一些现有的(但不是全部),触摸的位置/形状可能会改变
  3. 当用户松开手(即移除最后一次触摸)时,应用会发出求救信号

基本上,应用程序应该注册两个事件:(1)触摸屏幕(2)释放所有触摸

我正在尝试使用 touchesBegan/touchesEnded 方法,这些方法适用于小区域触摸(指尖),但在全掌或什至只有手掌边缘的触摸屏上,当手仍在屏幕上时,会立即触发 touchesCancelled。显然,之后在手动释放时不会发出其他事件。

我尝试将 UIWindow 和 UIApplication 子类化并在其中覆盖 sendEvent ,但没有得到其他信息 - 大面积触摸正在触发触摸开始并立即触摸取消,然后松开手不会发出任何信号。在某些情况下,大面积触摸根本不会触发任何事件,甚至 touchesBegan 也不会触发。基本上,iOS 不允许我使用非常基本的场景 - 仅检测屏幕触摸/释放的事实。

有什么方法可以直接查询屏幕触摸状态而不是使用响应链?或者抑制取消事件触发?或者,也许我错过了什么?

4

0 回答 0