是否有类似于UIAccessibility.isVoiceOverRunning
的API可以检测iOS 13中是否正在运行语音控制?我在当前beta文档中找不到任何相关信息。
语音控制:https://www.apple.com/ios/ios-13-preview/features/(请参见辅助功能部分)。
是否有类似于UIAccessibility.isVoiceOverRunning
的API可以检测iOS 13中是否正在运行语音控制?我在当前beta文档中找不到任何相关信息。
语音控制:https://www.apple.com/ios/ios-13-preview/features/(请参见辅助功能部分)。
等待iOS 13的正式发布,可能会在最终文档中提供一些新闻:像我一样点燃蜡烛。;o)
当用户使用语音控制时,如果您需要显示不同的UI,则可以使用以下解决方法。
由于没有像UIAccessibility.isVoiceOverRunning
这样的API可用于语音控制,因此您需要重写accessibilityActivate
以了解用户何时使用辅助功能与您的应用程序进行交互。
class Button: UIButton {
override init(frame: CGRect) {
super.init(frame: frame)
addTarget(self, action: #selector(handleTouchUpInside), for: .touchUpInside)
}
override func accessibilityActivate() -> Bool {
// Launch more accessible UI
if UIAccessibility.isVoiceOverRunning {
// VoiceOver
} else if UIAccessibility.isSwitchControlRunning {
// Switch Control
} else {
// Probably used Voice Control or Full Keyboard Access
}
return true
}
@objc func handleTouchUpInside() {
// Standard interaction - continue to show default UI
}
}
observe(UIAccessibility.voiceOverStatusDidChangeNotification, selector: #selector(voiceOverStatusDidChange))
@objc private func voiceOverStatusDidChange() {
if UIAccessibility.isVoiceOverRunning {
// do something
}
}