我有一個標準UIViewController
並註冊了一個UISwipeGestureRecognizer
,委託在我的viewDidLoad
重寫視圖。在語音中註冊UIGestureRecognizer操作
手勢會正確註冊並調用適當的操作,但是當語音覆蓋打開時不會發生這種情況。
是UIGestureRecognizer
僅適用於iOS的標準用法?有沒有辦法得到聲音註冊這些手勢,無論是雙擊,刷卡,捏/變焦等?
我有一個標準UIViewController
並註冊了一個UISwipeGestureRecognizer
,委託在我的viewDidLoad
重寫視圖。在語音中註冊UIGestureRecognizer操作
手勢會正確註冊並調用適當的操作,但是當語音覆蓋打開時不會發生這種情況。
是UIGestureRecognizer
僅適用於iOS的標準用法?有沒有辦法得到聲音註冊這些手勢,無論是雙擊,刷卡,捏/變焦等?
想通了這是如何工作的,我認爲這是值得分享的:
在UIView的類東張西望,以及UIAccessibilityTraits後,所有UIViews及其子類必須使用各種UIAccessibilityTraits位掩碼可以用來: - 設計UIView或採用UIAccessibility協議的任何類的標準行爲。 - 允許不同的配置,如刷新速度,使滑塊型行爲等
下面是所有可用的性狀的鏈接: https://developer.apple.com/reference/uikit/uiaccessibility/accessibility_traits
對於我的具體情況,我用UIAccessibilityTraitAllowsDirectInteraction和UIAccessibilityTraitUpdatesFrequently。然後,所有UIGestureRecognizers正確註冊,不論是刷卡,水龍頭,捏等
他們需要被指定爲一個位掩碼,所以如果你需要一個元素具有這些屬性,類型:
myView.UIAccessibilityTraits = UIAccessibilityTraitAllowsDirectInteraction | UIAccessibilityTraitUpdates常見的
編譯後,運行應用程序,我得到了視圖,告訴我它是什麼,並在沒有出現錯誤時獲得的「bonk」聲音的情況下正確地刷新註冊表。
希望這可以幫助那些也想知道如何讓它工作的人,但這也可能會與自定義視圖稍有衝突,具體取決於您希望視力受損或視覺受損的用戶如何體驗UI。然而,我發現這種方式比創建一整套UIElements更加優雅,只是爲了適應語音使用,因爲交互方法保持不變,並且不需要編寫代碼來提示或解釋做什麼。
好問題!我猜不是,因爲手勢是*身體*,而不是聲音。但我有興趣找出是否有人有更具建設性的東西.... – dfd
看到這個鏈接希望它會幫助你https://www.apple.com/voiceover/info/guide/_1137.html –