在 iOS 中选择时忽略辅助功能标签?

Ignore accessibility label when selected in iOS?

我有一个带有辅助功能标签的按钮,比如 'start'。当用户关注它时,画外音会按预期宣布其标签。但是,当用户双击时,画外音会再次宣布标签。我想忽略这第二个公告。我检查了 Spotify 的应用程序,当单击 'play' 按钮时,它的图标和标签变为 'pause' 但画外音没有宣布此更改。我怎样才能实现相同的行为?

voice over announces the label again, when user double taps. I want to ignore this second announcement.

达到目标的最快方法是覆盖新按钮子class中的accessibilityActivate函数:

class myButton: UIButton {

    override func accessibilityActivate() -> Bool {

        self.accessibilityLabel = ""

        return true
    }
}

当按钮操作失去焦点时,请不要忘记重新定义辅助功能标签,否则它将保持为空。
myButton class 中的 UIAccessibilityFocus informal protocol 例如:

override open func accessibilityElementDidLoseFocus() {
    self.accessibilityLabel = "yourPreviousLabelHere"
}