ios - 设置 maximumDate 时 Datepicker 返回错误的日期

标签 ios swift uidatepicker swift4.2

我有一个日期选择器,我将 maximumDate 设置为 2 年前

今天是 15/07/2019 所以 2 年后变成 15/07/2017

现在,当我打开日期选择器时,自动选择器会从今天(15/07/2019)到 15/07/2017,因为我已将 maximumDate 设置为 2 年前

现在我不滚动日期选择器并单击我阅读选择器日期的完成按钮。

print("mDoneAction===\(mDatePicker.date)")

打印日期如下。

2019-07-15 12:26:17 +0000

知道为什么它给我 2019 而不是 2017 作为选择器已经设置在 15-07-2017 而不是 15-07-2019。

最佳答案

来自文档

open var date: Date // default is current date when picker created.

所以设置 maximumDate 不会影响 date ,你还需要设置 date

let d = UIDatePicker()
let year2Before = Calendar.current.date(byAdding: .year, value:-2, to: Date())!
d.date = year2Before
d.maximumDate = year2Before

关于ios - 设置 maximumDate 时 Datepicker 返回错误的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57039828/

相关文章:

ios - 设置 WebView Delegate 后崩溃

ios - UINavigationBar 文本颜色在弹出后保持白色

swift - 如何为 UITableView 中的每个部分启用水平分页

ios - Swift - 将初始数据从 mysql 加载到 uidatepicker(不是从简单的 uipiker)

iphone - 无法通过其标签获取 UIButton

ios - NSComparisonResult OrderedDescending 和 OrderedAscending 未按预期运行

ios - 以编程方式在 tableView 和 BottomLayoutGuide 之间添加 View

ios - 一个应用程序可以被 Itunesconnect 中同一团队 ID 中的另一个应用程序替换吗?

swift - 我如何编写一个函数,它接受泛型类型参数,但根据泛型对象的类型返回不同的类型?

ios - 改变声音以匹配不同的倍数