簡體   English   中英

如何對UIAccessibilityElement子類中的“內部觸摸”事件做出反應?

[英]How to react to a “touch up inside” event in UIAccessibilityElement subclass?

我有一張畫有物品的地圖。 該地圖處理觸摸事件,並確定觸摸的項目就像按鈕一樣。

我將地圖設置為容器,並實現了用於返回accessibleElements的方法。 對於每一項,我創建一個UIAccessibilityElement子類的實例。

似乎UIAccessibilityAction協議沒有針對“輕擊”或“按下按鈕”事件的回調。 那我如何用UIAccessibilityElement模仿UIButton的效果?

假設您在iOS 5或iOS 6下運行,請考慮以下解決方法。 它不是最佳方法,但是可以使用,直到有更好的方法為止:

  1. 創建一個本身不是可訪問性元素的虛擬視圖。
  2. 在此視圖上,在-touchesEnded:withEvent:實現“點擊”處理。
  3. 將可訪問性元素的accessibilityActivationPoint設置為該虛擬視圖內的值。

當相應的輔助功能被激活時,您的虛擬視圖將接收觸摸事件。 如果VoiceOver和其他輔助技術未運行,請確保在虛擬視圖中忽略觸摸處理。

編輯:另一個不那么棘手的方法是在您關注的視圖上實現輕擊手勢識別器,將-touchesEnded:withEvent:的坐標轉換為屏幕坐標,然后針對可訪問性元素的框架手動命中測試點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM