DateRow 本地不变
DateRow local does not change
由于 Eureka 表单框架,我正在构建一个 FormViewController,但我 运行 遇到了 DateRow 的问题。我希望 UIDatePicker 以法语显示,但月份总是以英语显示。
我尝试在另一个视图控制器上用法语设置另一个 UIDatePicker,它工作正常:
let date = UIDatePicker()
date.datePickerMode = .date
date.locale = Locale(identifier: "fr")
date.frame = CGRect(x: 50, y: 200, width: 300, height: 200)
view.addSubview(date)
由于本地 UIDatePicker 属性,语言正在发生变化,所以我尝试添加这个 属性 在 Eureka 文件中设置日期选择器的地方(因为我认为我们无法访问DateRow 对象中的日期选择器)。
open class DateCell: Cell<Date>, CellType {
public var datePicker: UIDatePicker
public required init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
datePicker = UIDatePicker()
super.init(style: style, reuseIdentifier: reuseIdentifier)
}
required public init?(coder aDecoder: NSCoder) {
datePicker = UIDatePicker()
super.init(coder: aDecoder)
}
open override func setup() {
super.setup()
accessoryType = .none
editingAccessoryType = .none
datePicker.datePickerMode = datePickerMode()
datePicker.addTarget(self, action: #selector(DateCell.datePickerValueChanged(_:)), for: .valueChanged)
datePicker.locale = Locale(identifier: "fr")
}
但日期选择器始终显示为英文。
你有什么想法我应该在哪里添加本地线路吗?
提前致谢!
您可以访问 DateRow
的 datePicker
作为 cell.datePicker
。要更改其语言环境,请使用 cellSetup
回调。您可能还想设置行的格式化程序,以便使用正确的语言环境显示值:
<<< DateRow(){
[=10=].value = Date()
let formatter = DateFormatter()
formatter.locale = Locale(identifier: "fr")
formatter.dateStyle = .long
[=10=].dateFormatter = formatter
}.cellSetup({ (cell, row) in
cell.datePicker.locale = Locale(identifier: "fr")
})
由于 Eureka 表单框架,我正在构建一个 FormViewController,但我 运行 遇到了 DateRow 的问题。我希望 UIDatePicker 以法语显示,但月份总是以英语显示。
我尝试在另一个视图控制器上用法语设置另一个 UIDatePicker,它工作正常:
let date = UIDatePicker()
date.datePickerMode = .date
date.locale = Locale(identifier: "fr")
date.frame = CGRect(x: 50, y: 200, width: 300, height: 200)
view.addSubview(date)
由于本地 UIDatePicker 属性,语言正在发生变化,所以我尝试添加这个 属性 在 Eureka 文件中设置日期选择器的地方(因为我认为我们无法访问DateRow 对象中的日期选择器)。
open class DateCell: Cell<Date>, CellType {
public var datePicker: UIDatePicker
public required init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
datePicker = UIDatePicker()
super.init(style: style, reuseIdentifier: reuseIdentifier)
}
required public init?(coder aDecoder: NSCoder) {
datePicker = UIDatePicker()
super.init(coder: aDecoder)
}
open override func setup() {
super.setup()
accessoryType = .none
editingAccessoryType = .none
datePicker.datePickerMode = datePickerMode()
datePicker.addTarget(self, action: #selector(DateCell.datePickerValueChanged(_:)), for: .valueChanged)
datePicker.locale = Locale(identifier: "fr")
}
但日期选择器始终显示为英文。
你有什么想法我应该在哪里添加本地线路吗?
提前致谢!
您可以访问 DateRow
的 datePicker
作为 cell.datePicker
。要更改其语言环境,请使用 cellSetup
回调。您可能还想设置行的格式化程序,以便使用正确的语言环境显示值:
<<< DateRow(){
[=10=].value = Date()
let formatter = DateFormatter()
formatter.locale = Locale(identifier: "fr")
formatter.dateStyle = .long
[=10=].dateFormatter = formatter
}.cellSetup({ (cell, row) in
cell.datePicker.locale = Locale(identifier: "fr")
})