gpt4 book ai didi

ios - 如何在扩展中修改UIButton的accessibilityLabel

转载 作者:行者123 更新时间:2023-11-30 11:26:05 30 4
gpt4 key购买 nike

我正在使用一个分析工具来记录按钮的accessibilityLabel。我正在尝试找到一种在不更改现有代码的情况下更新 accessibilityLabel 的方法。

对于普通按钮,我使用titleLabel.text。对于使用来自图像资源的名称的 iconButton,我使用 accessibilityLabel 本身。

我遇到的一些问题:

  • 无法在其 getter 内访问 accessibilityLabel。因为这会递归地查找accessibilityLabel
  • 所以我必须使用另一个属性来支持,并且由于这是一个扩展,我无法使用存储的属性。计算属性也不起作用,因为它会陷入同一个反馈循环中。
  • 最终我通过使用 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!
}
}
}

最佳答案

你正在与系统作斗争。您可以使用子类化来实现此目的。

为了避免将来出现类似问题,请始终将所有 UIButtonUITableViewCellUIViewController 等从您自己的子类化 基类,以便您可以轻松地进行此类通用更改。

关于ios - 如何在扩展中修改UIButton的accessibilityLabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50727968/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com