2011-11-23 54 views
2

我正在爲殘疾兒童開發iPad應用程序。問題是,他們中的許多人試圖用整個手或他們的拳頭與應用程序進行交互。另外,他們的手搖晃,他們花了很長時間從屏幕上擡起整個手。這導致應用程序在與屏幕交互時註冊多個觸摸事件。如何在iPad屏幕上應用手時只檢測到一次觸摸?

我的應用程序如何才能在孩子每次按下視圖時才發起一個事件?

+0

艱難的。我有「重要的震顫」,並有觸摸屏的麻煩。當按下按鈕時,UI按鈕上的設置基本上禁用了按鈕,因此您必須從程序中重置該按鈕。但我不記得細節。 –

回答

2

這是一個艱難的。但是你的問題是:「你的建議是什麼,以便每次孩子按下視圖時才發起一個事件?」您可以禁用多點觸控。

使用multipleTouchEnabled屬性禁用多點觸控。例如,這將禁用視圖控制器視圖的多點觸控。

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

另一個指針是iOS設備有VoiceOver功能,它主要是爲那些有聽力障礙,但可能是在這種情況下有幫助。您可以在設置中打開VoiceOver並檢查。

假設你是註冊蘋果開發者,他們也有一些關於可訪問性的WWDC會議。

希望這會有所幫助,總是很高興看到殘疾人士的考慮。

1

您可以監視所有當前觸摸並平均它們的X和Y座標以產生表示這些觸摸的質心的單個值,而不是單獨跟蹤每個觸摸事件。這個值可以用作輸入來確定視圖的位置,並根據需要處理該交互。

此外,您可能可以在觸摸位置使用低通濾波器,以消除可能來自不穩定手部的一些抖動。在真正註冊之前,您也許能夠在觸摸提離之後稍稍延遲一段時間,以防某人的手抖動足以與屏幕斷開連接並在之後不久重新連接。

即使對於沒有運動障礙的用戶,我也添加了一些觸摸事件的微調和啓發式來解釋人手的不精確性。然而,沒有一個簡單的解決方案,因爲每種情況都需要進行大量的實驗。

相關問題