2011-11-23 53 views
2

我正在为残疾儿童开发iPad应用程序。问题是,他们中的许多人试图用整个手或他们的拳头与应用程序进行交互。另外,他们的手摇晃,他们花了很长时间从屏幕上抬起整个手。这导致应用程序在与屏幕交互时注册多个触摸事件。如何在iPad屏幕上应用手时只检测到一次触摸?

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

+0

艰难的。我有“重要的震颤”,并有触摸屏的麻烦。当按下按钮时,UI按钮上的设置基本上禁用了按钮,因此您必须从程序中重置该按钮。但我不记得细节。 –

回答

2

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

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

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

另一个指针是iOS设备有VoiceOver功能,它主要是为那些有听力障碍,但可能是在这种情况下有帮助。您可以在设置中打开VoiceOver并检查。

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

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

1

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

此外,您可能可以在触摸位置使用低通滤波器,以消除可能来自不稳定手部的一些抖动。在真正注册之前,您也许能够在触摸提离之后稍稍延迟一段时间,以防某人的手抖动足以与屏幕断开连接并在之后不久重新连接。

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

相关问题