【问题标题】:How do I detect only one touch when a hand is applied to the iPad screen?当手放在 iPad 屏幕上时,如何仅检测一次触摸?
【发布时间】:2011-11-23 01:28:21
【问题描述】:

我正在为有运动障碍的儿童开发一款 iPad 应用程序。问题是他们中的许多人试图用他们的整只手或他们的拳头与应用程序交互。此外,他们的手会颤抖,而且他们需要很长时间才能将整个手从屏幕上抬起。这会导致应用在与屏幕交互时注册多个触摸事件。

我的应用程序如何在孩子每次按下视图时只发起一个事件?

【问题讨论】:

  • 艰难的。我有“特发性震颤”并且触摸屏有问题。 UI 按钮上有一些设置可以在按下一次时基本上禁用该按钮,因此您必须从程序中将其重置。不过我不记得细节了。

标签: objective-c ios cocoa-touch ipad


【解决方案1】:

这是一个艰难的过程。但是你的问题“你有什么建议,以便每次孩子按下视图时只发起一个事件?”您可以禁用多点触控。

您可以使用 multipleTouchEnabled 属性禁用多点触控。例如,这将禁用视图控制器的视图的多点触控。

-(void)viewDidLoad{
    [super viewDidLoad];
    self.view.multipleTouchEnabled = NO;
}

另一个提示是,iOS 设备具有VoiceOver 功能,该功能主要适用于听力障碍者,但在这种情况下可能会有所帮助。您可以在设置中打开VoiceOver 并查看。

假设你是一名注册的苹果开发者,他们也有一些关于可访问性的 WWDC 会议。

希望这会有所帮助,总是很高兴看到对残障人士的考虑。

【讨论】:

    【解决方案2】:

    您可以监视所有当前的触摸并平均它们的 X 和 Y 坐标,而不是单独跟踪每个触摸事件,以产生一个代表这些触摸质心的值。这个值可以用作您的输入,以确定触摸视图的哪个位置,并根据需要处理该交互。

    此外,您还可以在触摸位置上使用低通滤波器来消除一些可能来自手抖动的抖动。在真正注册之前,您还可以在触摸解除后稍作延迟,以防有人的手颤抖到足以断开与屏幕的连接并很快重新连接。

    即使对于没有运动障碍的用户,我也对触摸事件添加了一些微调和启发式方法,以解决人手的不精确问题。但是,没有一个简单的解决方案,因为每种情况都需要大量的实验。

    【讨论】:

      猜你喜欢
      • 2016-01-15
      • 2022-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多