swift 当日期为中等格式时,为什么iOS的旁白会错误地读取四月?

busg9geu  于 2023-11-16  发布在  Swift
关注(0)|答案(1)|浏览(82)

我有一个Date对象,它是04/04/2020。

我把它转换成一个字符串:

DateFormatter.localizedString(from: date, dateStyle: .medium, timeStyle: .none)

字符串

因此转换为:

2020年4月4日。
当iOS旁白读取它时,它会将月份读作A-P-R而不是四月。对于其他月份,它会正确读取。Mar读作March,Jan读作January。

这是一个iOS bug还是我遗漏了什么?

mwngjboj

mwngjboj1#

您可以创建日期扩展名:

extension Date {
   func monthName() -> String {
      let dateFormatter = DateFormatter()
      dateFormatter.dateFormat = "MMMM"
      dateFormatter.locale = Locale(identifier: Locale.currentLanguage)
      return dateFormatter.string(from: self).capitalized
   }
}

字符串
然后,您将使用此扩展:

private func setupAccessibility(with date: Date) {
    self.accessibilityLabel = "\(date.day) \(date.monthName()) \(date.year)"
}

相关问题