【问题标题】:date is not printing properly for UIDatePicker没有为 UIDatePicker 正确打印日期
【发布时间】:2018-07-25 18:52:19
【问题描述】:

我有一个日期选择器,在它上面我有 1 个按钮作为完成。单击此按钮时,我会打印日期选择器日期。

当我滚动日期选择器并打印日期时,它工作正常。下面是我的代码

print("date selected===\(myDatePicker.date)")

当我不滚动日期选择器并单击完成按钮时,问题就出现了。

场景是我将 datepicker maximumDate 设置为 2000 年(currentYear-18)。下面是我用过的代码。

var dayComp = DateComponents()
currDate = Date()
dayComp.year = -18
currDate = calendar.date(byAdding: dayComp, to: currDate)!
mDateFrom.maximumDate = currDate

现在由于日期选择器要追溯到 18 年,我看到日期选择器的日期为 2000 年 7 月 25 日,但是当我点击完成按钮时,它只打印今天的日期。

只有当我滚动日期选择器时它才会给出正确的日期。

知道为什么会这样吗?

【问题讨论】:

  • 更改日期时有回调(valueChanged)。因此,当您在不更改日期的情况下关闭选择器时,您不会得到它是正常的。

标签: swift uidatepicker


【解决方案1】:

我相信您需要在根据您想要的日期创建日期选择器后设置日期选择器显示的默认日期。因为此属性的default value 是创建UIDatePicker 对象的日期,这就是为什么每当您打印日期选择器的值而不旋转时,它会显示当前日期但是如果您旋转日期选择器,则此属性正在正确设置并打印正确的日期。

 //you can use date property to set or get  
 myDatePicker.date = yourFormattedDateHere

设置date 属性动画 date picker 通过将轮子旋转到新的日期和时间,如果您不希望在设置日期时出现任何动画,请使用@ 987654326@方法,为动画参数传递false。

【讨论】:

    猜你喜欢
    • 2020-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-18
    • 2014-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多