【发布时间】:2016-10-07 17:05:46
【问题描述】:
问题:
如何将自定义 VoiceOver 辅助功能
Label或Hint添加到应用程序 图标徽章编号?
例如,当 iOS 设置 Accessibility > VoiceOver 变为 On 时,VoiceOver 会大声朗读屏幕上触摸的项目。对于 App Store 和 Mail 图标,大声读出以下内容:
App Store 图标,VoiceOver 说:“App Store。2 个可用更新。 双击打开。”
邮件图标,VoiceOver 说:“邮件。1 条未读消息。点按两次 打开。”
但是,对于我正在进行的项目,VoiceOver 读出的内容是通用的,并不完全有帮助:
我的应用程序图标,VoiceOver 说:“我的应用程序。123 个新项目。点按两次即可 打开。”
短语 "... new items" 太模糊,不准确,我敢肯定一定有办法用自定义字符串来改变它通过设置accessibilityLabel、accessibilityHint 或类似的东西使其阅读效果更好。
但是在 Swift 代码中到底如何呢?
非常感谢。
补充观察:
使用 Simulator Accessibility Inspector,VoiceOver 值似乎来自 Label - “我的应用”和 Value - “123 个新项目”。因此在代码中进行了更新,我尝试将accessibilityValue 设置为自定义 - “123 自定义描述”。但仍然没有运气,VoiceOver 继续阅读“我的应用程序。123 个新项目。点按两次即可打开。”
为什么 VoiceOver 没有按预期读取自定义徽章值?
代码:
下面的方法在My App的图标上添加一个红色圆圈的App Icon Badge Number:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let badgeCount: Int = 123
let application = UIApplication.sharedApplication()
if #available(iOS 8.0, *) {
//// iOS 8, iOS 9, iOS 10
application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: [.Badge], categories: nil))
} else {
//// iOS 7
}
application.applicationIconBadgeNumber = badgeCount
application.accessibilityValue = "123 custom description."
}
}
【问题讨论】:
标签: ios swift optimization accessibility uiaccessibility