我正在使用一个分析工具来记录
accessibilityLabel
钮扣。
我在想办法更新
可接近性标签
不改变我现有的代码。
对于普通按钮,我使用
titleLabel.text
. 对于使用来自我使用的图像资源的名称的iconbutton
可接近性标签
本身。
我面临的一些问题:
-
不能访问
可接近性标签
在它的吸气剂里。因为它会递归地寻找
可接近性标签
.
-
所以我不得不使用另一个属性作为备份,因为这是一个扩展,所以我不能使用存储的属性。计算属性也不起作用,因为它会被困在同一个反馈循环中。
-
最后我用
accessibilityHint
. 这是一个储存的财产,我没有使用…
这是有效的!
但我一直
told and read
我
不应该
重写扩展中的函数,因为这不可靠。所以我想知道我该怎么做?
如果swift有任何机制不涉及uibutton扩展中的重写?!
这是我的代码:
extension UIButton{
private var adjustAccessibilityLabel : String{
if titleLabel?.text?.isEmpty == false{
return titleLabel!.text!
}else if accessibilityHint?.isEmpty == false{
return accessibilityHint!
}else{
return "Empty"
}
}
open override var accessibilityLabel: String?{
get{
return "\(self.adjustAccessibilityLabel))"
}
set{
accessibilityHint = newValue // Hacking my way through!
}
}
}