2013-12-20 16 views

回答

7

你可能會問任兩件事情:

  1. 你想知道什麼時候VoiceOver的用戶成功發出左/右的手勢的VoiceOver單指輕掃 - 的VoiceOver會處理(「偷」)從你的代碼中做出的手勢並做它的事情(將VoiceOver光標移動到下一個/上一個元素)。你可以得到的最接近的是得到通知一個UIView時VoiceOver光標土地上或離開它(見UIAccessibilityFocus protocol)。

  2. 你想使你的UI的部分不受VoiceOver手勢(VoiceOver會不會處理(「偷」)在這方面的手勢),這樣就可以檢測自己的手勢(包括左單指滑動/正確)以標準方式進行處理,並以您想要的方式處理它們。然後,你必須將UIAccessibilityTraitAllowsDirectInteraction特徵添加到accessibilityTraits屬性相關UIView(見UIAccessibility protocol有詳細介紹)。這何處使用的一個突出的例子是在GarageBand的iOS - 鋼琴鍵盤或鼓具有這種特性,使用戶的VoiceOver可以在樂器演奏頭也不回的VoiceOver關閉。

+0

感謝您迴應,第一個看起來像它會用我的方案工作。我會繼續閱讀文檔。 – 3254523

0

我最終在UIView上創建了一個category/extension並覆蓋了accessibilityElementDidBecomeFocused()。

在這裏我可以得到一個全局鉤子,它被調用每一個可訪問性狀態發生變化的時間。

斯威夫特例如:

extension UIView { 

//MARK: Accessibility 

override public func accessibilityElementDidBecomeFocused() { 
    super.accessibilityElementDidBecomeFocused() 

    UIApplication.sharedApplication().sendEvent(UIEvent()) 
} 
} 
相關問題