【发布时间】:2017-08-08 22:20:38
【问题描述】:
我有一个可以切换显示标签的按钮:
class ViewController: UIViewController {
@IBOutlet weak var label: UILabel!
@IBOutlet weak var button: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
button.accessibilityLabel = "You can tap this really long string that i'm testing"
label.accessibilityLabel = "This is a label"
}
@IBAction func buttonTapped(_ sender: UIButton) {
label.isHidden = !label.isHidden
if !label.isHidden {
UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, label)
}
}
}
点击按钮时,如果显示标签,我会激活 VoiceOver 读取的标签。问题是当用户点击按钮时,VoiceOver 会自动开始读取按钮的accessibilityLabel。这会导致 VoiceOver 在切换到读取标签的 accessibilityLabel 之前读取按钮的一半 accessibilityLabel(例如,“你可以点按这个真的……这是一个标签”)。
有什么方法可以让我知道 VoiceOver 何时完成读取按钮的 accessibilityLabel 并且只有 然后 调用 UIAccessibilityPostNotification?或者有没有办法在用户点击按钮时禁止 VoiceOver 再次读取按钮?
可以在此处查看示例项目:https://github.com/rajohns08/VoiceOverTest
【问题讨论】:
-
请问这些答案是否为您的问题提供了合适的解决方案? ??????
标签: ios accessibility voiceover uiaccessibility