以编程方式设置时间时,UIDatePicker显示为禁用

时间:2013-08-01 17:35:44

标签: cocoa-touch ios6 uidatepicker

我为 UIDatePickerModeTime 设置了UIDatePicker。我使用以下代码在datePicker中设置时间:

[self.oTimePicker setDate:dateFromString(self.oStartTime.text, @"HH:mm")];
[self.oTimePicker reloadInputViews];

有效,但是datePicker显示为灰色(见下图;看起来已禁用datePicker),并将时间设置为06:00,无论选择什么。这是结果的图像;请注意我已经选择了下午1:30,但是文本框显示06:00;此外,无论我选择什么,都没有变化(时间显示我选择的内容(此处下午1:30),但datePicker中的值保持在14:00(但不显示14:00验证了NSLog) ,无论我选择什么。有什么可能导致这个的想法?

enter image description here

1 个答案:

答案 0 :(得分:3)

您似乎遇到了UIDatePicker的时区问题。这就是为什么它在UIDatePicker中显示一次而在你的标签中显示另一次(华盛顿有-7时差)。关于这个主题有很多问题和答案(一个例子:iphone UIDatePicker showing wrong date in Central Timezone)。

您遇到的另一个问题是UIDatePicker被禁用。如果您将datePicker.minimumDate设置为当前日期并使用UIDatePickerModeTime

,则可能会导致此问题