当再次点击重点旁白元素时,我想做些事情。
函数accessibilityElementDidBecomeFocused()
仅在元素首次聚焦时被调用。
当我们再次单击同一聚焦元素时,将不会调用此函数。有人可以建议解决方案吗?
答案 0 :(得分:0)
有人可以提出一些解决方案吗?
以下是一些想法,可以在同一聚焦元素上检测一次轻击:
nbSelections
,该变量将计算单次点击的次数。在元素上创建点击手势识别器以增加点击次数,例如:
let tap = UITapGestureRecognizer(target: self,
action: #selector(addTapCounter(info:)))
tap.numberOfTapsRequired = 1
self.addGestureRecognizer(tap)
添加允许直接在元素上捕捉简单点击的特征:
override var accessibilityTraits: UIAccessibilityTraits {
get { return .allowsDirectInteraction }
set { }
}
在元素失去焦点时设置nbSelections = 0
:
override open func accessibilityElementDidLoseFocus() { nbSelections = 0 }
将这些想法与UIAccessibilityFocus informal protocol结合起来可能是达成目标的不错的研究方向。
但是,此技术解决方案假定直接点击是直接在元素本身上 (特定于特征),而不是在其他任何地方(我不。