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

Swift iOS UIDatePicker时区导致禁用微调器,swift,ios10,uidatepicker,Swift,Ios10,Uidatepicker,我有一个UIDatePicker,我用NSTimeZone(forSecondsFromGMT:seconds)设置timezone。但由于某些原因,在我第一次设置新日期时,UIDatePicker上的时间被禁用,但在我将模式切换回.date后,它再次工作 我怎样才能让这个一直有效?如果我不设置时区时间永远不会被禁用,但我需要打开时区 这是我要设置的代码,newDate是NSDate,调整是秒 self.timePicker.timeZone = NSTimeZone(forSe

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

我怎样才能让这个一直有效?如果我不设置
时区
时间永远不会被禁用,但我需要打开时区

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

        self.timePicker.timeZone = NSTimeZone(forSecondsFromGMT: adjustment)
        self.timePicker.setDate(newDate, animated: false)
禁用微调器屏幕截图:

我也遇到了同样的问题,可能是由于使用了非当前时区的时区,或者是拾取程序上设置的日历时区。从UIDatePicker那里得到的

打开var时区:时区?//默认值为零。使用当前时区或日历中的时区

通过在选择器上设置日历和时区进行修复

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

我也有同样的问题,你设法克服了吗?或者理解微调器禁用的原因?在我的例子中,只需分配.calendar即可修复它。分配日历后设置时区会导致微调器工作,但这些微调器在更新时会自动恢复到以前的值。这是在iOS 11.4上测试的