过去12个月的Swift Month年度pickerView

时间:2017-10-25 09:48:19

标签: ios swift uipickerview uidatepicker

我在tableView上有一个过滤器,它有一个'From'和'To'Months选项。

选择月份,我的意思是,当我选择Month时,datePicker只应显示Month Year。该清单应包含从今天起的最后12个月。

我查看了默认的UIDatePicker,但意识到不可能只获得Month-Year。 (Reference answer from SO

进一步观察,我发现this link有一个定制的月份选择器,但显示未来15年。并且,在选择任何行时,没有任何反应。

有人可以帮助我自定义它以显示从今天起的过去12个月并在选择后获取结果吗?

1 个答案:

答案 0 :(得分:0)

这是过去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: $0)}))