iOS UIDatePicker时区导致禁用的微调器

时间:2016-10-26 09:13:22

标签: swift ios10 uidatepicker

我有一个UIDatePicker,我将timezone设置为NSTimeZone(forSecondsFromGMT: seconds)。但由于某种原因,第一次设置新日期时,UIDatePicker上的时间被禁用,但在我将模式切换回.date后,它再次起作用。

我怎样才能让这个一直工作?如果我没有设置timezone时间永远不会被禁用,但我需要设置时区。

这是我要设置的代码,newDate是NSDate,调整是秒。

        self.timePicker.timeZone = NSTimeZone(forSecondsFromGMT: adjustment)
        self.timePicker.setDate(newDate, animated: false)

已禁用的spinner屏幕截图: enter image description here

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,看起来是因为使用的时区不是当前时区,或是选择器上日历设置的时区。从UIDatePicker.h

获得
  

open var timeZone:TimeZone? //默认为nil。使用日历中的当前时区或时区

通过在选择器上设置日历然后设置时区来修复。

let cal = Calendar(identifier: .gregorian)
cal.timeZone = TimeZone(identifier: "PST")
self.timePicker.calendar = cal
self.timePicker.timeZone = cal.timeZone