swift - 设置区域设置时 UIDatePicker 的时间位置错误

标签 swift locale uidatepicker nslocale

我有一个UIDatePicker,它显示日期和时间UIDatePickerMode.dateAndTime,当我在语言为阿拉伯语时显示选择器时,选择器通常会显示小时左边和右边的分钟没有问题,如下图:

enter image description here

但是,如果我将语言从英语更改为阿拉伯语,选择器会切换小时和分钟,如下所示:

enter image description here

我根据用户选择的语言将区域设置设置为:

if CURRENT_LANGUAGE_IS_ARABIC == true{
 pickerDate.locale = NSLocale.init(localeIdentifier: "ar") as Locale

}else{
 pickerDate.locale = NSLocale.init(localeIdentifier: "en") as Locale
}

编辑:此外,当从阿拉伯语更改为英语时,选择器在错误的位置显示时间:

enter image description here

最佳答案

确保添加semanticContentAttribute

  pickerDate.locale = NSLocale.init(localeIdentifier: "ar") as Locale
  self.pickerDate.semanticContentAttribute = .forceRightToLeft

关于swift - 设置区域设置时 UIDatePicker 的时间位置错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50366823/

相关文章:

c++ - 获取当前在 C++ 中设置的全局语言环境?

Swift UIDatePicker 不显示初始值

objective-c - 为什么我必须点击 UIDatePicker 两次才能设置时间?

ios - spritekit didBeginContact 三个对象不起作用

swift - nill 在分配数据标签时(在展开 Optional 值时意外发现 nil)

django - 如何将语言代码转换为区域设置名称?

linux - 如何在 Linux 中获取给定语言环境的语言名称

ios - UIDatePicker:选择日期时,跳转到任意一个随机日期

ios - TableView 重复 youtube-api 结果

ios - Firestore 离线未更新