例如,我试图获取自定义accessibilityValue
上带有小数的UIView
以读出为“二十点一”,类似于语音在视频微调器上读出持续时间和关键帧值的方式在“照片”应用中编辑视频时。
默认设置将值读出为“二十点一”。如果我改用accessibilityAttributedLabel
键设置accessibilitySpeechPunctuation
,则其读为“二十期间一”。
view.accessibilityAttributedLabel = NSAttributedString(string: "20.1", attributes: [.accessibilitySpeechPunctuation: true])
[不求助于手动构建一个数字字符串来读出的情况,没有人知道如何用“点”而不是“点”或“句号”来读取数字吗?
知道了!使用样式为NumberFormatter
的.spellOut
格式化数字将生成具有完整拼写值的字符串。不是我们想要的标签文本,而是我们想要的可访问性标签。
let formatter = NumberFormatter()
formatter.numberStyle = .spellOut
let label = UILabel()
label.text = formatter.string(from: 20.1)
label.accessibilityLabel = formatter.string(from: 20.1)
// prints out "twenty point one"
print(label.text)