如何让 Voiceover 拼出单词中的每个字母?
How to make Voiceover to spell each letter in a word?
我有一段文字 CPN34THX
应该通过画外音朗读为 C N 3 4 T H X
有没有把属性设置成UIAccessibility
,这样就可以一个字一个字的读了?
根据需要单独设置accessibilityLabel
。
let code = "CPN34THX"
let accessibleCode = code.map { String([=10=]) + " " }.joined() // output: "C P N 3 4 T H X"
myLabel.text = code
myLabel.accessibilityLabel = accessibleCode
为了让它更容易发音,制作一个像这样的字符串:
myLabel.accessibilityLabel = "C^. P^. N^. 3. 4. T^. H^. X^."
您可以尝试使用 NSAttributedString.Key.accessibilitySpeechSpellOut
让 VoiceOver
单独阅读每个字母。
来自UIAccessibilityConstants.h
:
// Use an NSNumber with a YES or NO value to specify whether each letter in the string should be spoken separately.
@available(iOS 13.0, *)
public static let accessibilitySpeechSpellOut: NSAttributedString.Key
请注意,此功能仅适用于 iOS 13 及更高版本。
一个例子:
let string = "CPN34THX"
let attributedLabel = NSMutableAttributedString(string: string,
attributes:[.accessibilitySpeechSpellOut: true])
yourAccessibleView.accessibilityAttributedLabel = attributedLabel
我有一段文字 CPN34THX
应该通过画外音朗读为 C N 3 4 T H X
有没有把属性设置成UIAccessibility
,这样就可以一个字一个字的读了?
根据需要单独设置accessibilityLabel
。
let code = "CPN34THX"
let accessibleCode = code.map { String([=10=]) + " " }.joined() // output: "C P N 3 4 T H X"
myLabel.text = code
myLabel.accessibilityLabel = accessibleCode
为了让它更容易发音,制作一个像这样的字符串:
myLabel.accessibilityLabel = "C^. P^. N^. 3. 4. T^. H^. X^."
您可以尝试使用 NSAttributedString.Key.accessibilitySpeechSpellOut
让 VoiceOver
单独阅读每个字母。
来自UIAccessibilityConstants.h
:
// Use an NSNumber with a YES or NO value to specify whether each letter in the string should be spoken separately.
@available(iOS 13.0, *)
public static let accessibilitySpeechSpellOut: NSAttributedString.Key
请注意,此功能仅适用于 iOS 13 及更高版本。
一个例子:
let string = "CPN34THX"
let attributedLabel = NSMutableAttributedString(string: string,
attributes:[.accessibilitySpeechSpellOut: true])
yourAccessibleView.accessibilityAttributedLabel = attributedLabel