设置语言环境时UIDatePicker错误的时间位置

时间:2018-05-16 09:15:42

标签: swift locale uidatepicker nslocale

我有UIDatePicker,显示日期和时间UIDatePickerMode.dateAndTime,当我在语言为阿拉伯语时提供选择器时,选择器通常在左侧显示小时,右侧显示分钟没有问题如下图所示:

enter image description here

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

enter image description here

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

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

1 个答案:

答案 0 :(得分:0)

确保添加semanticContentAttribute

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