刷新 UIDatePicker 禁用日期的颜色

3

描述

我有一个 UIDatePicker,其中 datePickerMode 设置为 date,同时也设置了 minimumDatemaximumDate。在最大日期之后的日期将被禁用并标上不同的颜色来表示它们不能被选择。

UIDatePicker的代码

let datePicker = UIDatePicker()
datePicker.minimumDate = Date.init(timeIntervalSince1970: 0)
datePicker.maximumDate = Date()
datePicker.setValue(UIColor.yellow, forKeyPath: "textColor")
datePicker.datePickerMode = .date

禁用未来日期

Disabled dates in future

当将年份更改为过去的某一年时,期望月份和日期会刷新并更改颜色,但事实并非如此。

Date in past but month and day disabled

注意2018年有黄色,表示可以选择,但是8月26日没有那种颜色,就像它们无法选择一样。但是当我滚动到它们时,它们会因为年份是2017而变成黄色。

问题

如何在日期选择器更改值时刷新禁用的日期选择器组件?

1个回答

0
我找到的唯一解决方案是将 datePickerMode 切换到另一个模式,然后再切换回来。虽然可以解决问题,但会破坏选择器的动画效果 :/
@IBAction private func datePickerChangedAction(_ sender: Any) {
    self.datePicker.datePickerMode = .dateAndTime
    self.datePicker.datePickerMode = .date
    // ...
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接