Swift 过去 12 个月的月年 pickerView
Swift Month year pickerView with last 12 months
我在 tableView 上有一个过滤器,它有 'From' 和 'To' 个月 selection。
月 selection,我的意思是,当我 select 月时,datePicker 应该只显示月年。该列表应包含从今天开始的过去 12 个月。
我查看了默认的 UIDatePicker,但意识到不可能只获取月-年。 (Reference answer from SO)
进一步查看,我发现 this link 有一个自定义的月-年选择器,但它显示的是未来 15 年。而且,在任何行的 selection 上,没有任何反应。
有人可以帮我自定义它以显示从今天开始的过去 12 个月并在 selection 时获取结果吗?
这是获取过去 12 个月的简单示例
var last12Months = [Date]()
let firstDayComponent = DateComponents(day: 1)
Calendar.current.enumerateDates(startingAfter: Date(),
matching: firstDayComponent,
matchingPolicy: .nextTime,
direction: .backward,
using: { (date, idx, stop) in
if let date = date {last12Months.append(date) }
if last12Months.count == 12 { stop = true }
})
print(last12Months)
let formatter = DateFormatter()
formatter.dateFormat = "MMMM yyyy"
print(last12Months.map({formatter.string(from: [=10=])}))
我在 tableView 上有一个过滤器,它有 'From' 和 'To' 个月 selection。
月 selection,我的意思是,当我 select 月时,datePicker 应该只显示月年。该列表应包含从今天开始的过去 12 个月。
我查看了默认的 UIDatePicker,但意识到不可能只获取月-年。 (Reference answer from SO)
进一步查看,我发现 this link 有一个自定义的月-年选择器,但它显示的是未来 15 年。而且,在任何行的 selection 上,没有任何反应。
有人可以帮我自定义它以显示从今天开始的过去 12 个月并在 selection 时获取结果吗?
这是获取过去 12 个月的简单示例
var last12Months = [Date]()
let firstDayComponent = DateComponents(day: 1)
Calendar.current.enumerateDates(startingAfter: Date(),
matching: firstDayComponent,
matchingPolicy: .nextTime,
direction: .backward,
using: { (date, idx, stop) in
if let date = date {last12Months.append(date) }
if last12Months.count == 12 { stop = true }
})
print(last12Months)
let formatter = DateFormatter()
formatter.dateFormat = "MMMM yyyy"
print(last12Months.map({formatter.string(from: [=10=])}))