ios 字符串中日期的辅助功能Voice One

iyr7buue  于 2023-01-14  发布在  iOS
关注(0)|答案(1)|浏览(126)

我有以下代码。

let text = "as of 07/29/2020"
textLabel.text = text

画外音读了它-“截至07/29/2020”
我怎么能让它读起来像“截至7月29日2020”

qmelpv7a

qmelpv7a1#

回答不确定你到底想解决什么问题。但希望这能有所帮助。

步骤1:您需要使用辅助功能标签属性label.accessibilityLabel = "some string"
第二步:将你的日期转换成一个更友好的字符串,你可以使用Date()对象来完成这个操作,并为标签和配音标签设置不同的格式。这里有一个用swift创建日期的链接。
下面是文档和提到辅助功能标签的部分的链接。

Playground示例:代码将如下所示。

import UIKit
import PlaygroundSupport

let label = UILabel()

let dateForLabel = formatDate(date: Date(), style: .short)
let dateStringForLabel = "as of \(dateForLabel)"
label.text = dateStringForLabel

let dateForVoiceOverLabel = formatDate(date: Date(), style: .long)
let dateStringForVoiceOver = "as of \(dateForVoiceOverLabel)"
label.accessibilityLabel = dateStringForVoiceOver

func formatDate(date: Date, style: DateFormatter.Style) -> String {
    let dateFormatter = DateFormatter()
    dateFormatter.dateStyle = style
    dateFormatter.timeStyle = .none

    let date = date

    // US English Locale (en_US)
    dateFormatter.locale = Locale(identifier: "en_US")
    return  dateFormatter.string(from: date) // Jan 2, 2001
}

创建Date()对象的链接How do you create a Swift Date object?
可访问性标签上的苹果文档链接https://developer.apple.com/documentation/uikit/accessibility_for_ios_and_tvos/supporting_voiceover_in_your_app

“更新您的应用程序的辅助功能对于VoiceOver无法访问的元素,请从改进其辅助功能标签和提示开始:
accessibilityLabel属性提供描述性文本,当用户选择元素时,VoiceOver会读取这些文本。
accessibilityHint属性为选定元素提供附加上下文(或操作)。
辅助功能标签非常重要,因为它们提供了VoiceOver可以阅读的文本。一个好的辅助功能标签应该简短且内容丰富。请务必注意,UILabelaccessibilityLabel是不同的东西。默认情况下,旁白朗读与标准UIKit控件(如UILabelUIButton)关联的文本。但是,这些控件也可以具有相应的accessibilityLabel属性,以添加有关标签或按钮的更多详细信息。
根据上下文的不同,提示并不总是必要的。在某些情况下,标签提供了足够的上下文。如果您觉得在辅助功能标签中说得太多,请考虑将该文本移到提示中。
为了确保用户理解界面的意图,您可能需要手动设置一些辅助功能标签。辅助功能标签和提示可以在Xcode的身份检查器中设置,也可以通过编程方式设置。”

相关问题