我有一個自定義控件(UIView子類),它與鎖定屏幕上的「滑動解鎖」控件相同。自定義滑塊控件上的UIAccessibility
當Voiceover選擇視圖時,我可以通知我嗎?而且,當它被選中時,手勢識別器沒有接收手勢,因此使控制無效。
任何提示?到目前爲止,我已經設置了isAccessibilityElement和標籤/提示。
我有一個自定義控件(UIView子類),它與鎖定屏幕上的「滑動解鎖」控件相同。自定義滑塊控件上的UIAccessibility
當Voiceover選擇視圖時,我可以通知我嗎?而且,當它被選中時,手勢識別器沒有接收手勢,因此使控制無效。
任何提示?到目前爲止,我已經設置了isAccessibilityElement和標籤/提示。
我必須做兩件事情,使其工作:
self.accessibilityTraits = UIAccessibilityTraitAllowsDirectInteraction;
,並增加了雙敲擊手勢識別,只有當聲音運行
UITapGestureRecognizer *doubleTapGestureRecognizer = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(didDoubleTap:)];
doubleTapGestureRecognizer.numberOfTapsRequired = 2;
[self addGestureRecognizer:doubleTapGestureRecognizer];
- (void)didDoubleTap:(UITapGestureRecognizer*)tapGesture {
if(UIAccessibilityIsVoiceOverRunning()){
[self slideHandleToFinish];
} }
這也適用於我。設置UIAccessibilityTraitAllowsDirectInteraction可使VoiceOver接收我的UISwipeGestureRecognizer。 –
謝謝,蘋果說我們只需要添加之前的accessibilityTrais,否則我們會失去他們(在我的情況下,我失去了很多),像這樣:self.accessibilityTraits = UIAccessibilityTraitAllowsDirectInteraction | [super accessibilityTraits];請注意UIAccessibilityConstants.h作爲UIAccessibilityTraits的註釋:「當設置可訪問性狀時,將自定義特性與 [super accessibilityTraits]組合在一起。不正確的自定義特性組合 將導致可訪問性客戶端錯誤地解釋元素。 – meronix
我知道你的問題已經回答了觸發但你應該看看蘋果公司用VoiceOver的「幻燈片解鎖」功能。他們把它變成「雙擊解鎖」。否則,對於像音量等普通滑塊,你應該看看'accessibilityIncrement'和'accessibilityDecrement'方法。 –