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

Cocoa touch 以编程方式设置时间时,UIDatePicker显示为禁用状态,cocoa-touch,ios6,uidatepicker,Cocoa Touch,Ios6,Uidatepicker,我为UIDatePickerModeTime设置了UIDatePicker。我正在使用以下代码设置日期选择器中的时间: [self.oTimePicker setDate:dateFromString(self.oStartTime.text, @"HH:mm")]; [self.oTimePicker reloadInputViews]; 该选项起作用,但日期选择器显示为灰色(请参见下图;日期选择器似乎已禁用),并将时间设置为06:00,无论选择了什么。这是结果的图像;请注意,我选择了下午1

我为UIDatePickerModeTime设置了UIDatePicker。我正在使用以下代码设置日期选择器中的时间:

[self.oTimePicker setDate:dateFromString(self.oStartTime.text, @"HH:mm")];
[self.oTimePicker reloadInputViews];
该选项起作用,但日期选择器显示为灰色(请参见下图;日期选择器似乎已禁用),并将时间设置为06:00,无论选择了什么。这是结果的图像;请注意,我选择了下午1:30,但文本框显示为06:00;此外,无论我选择什么,都不会发生任何变化(时间显示我选择的时间(此处为下午1:30),但日期选择器中的值保持在14:00(但不显示14:00,已通过NSLog验证),无论我选择什么。您知道是什么导致了这种情况吗


看起来您的
UIDatePicker
存在时区问题。这就是为什么它在
UIDatePicker
中显示一个时间,在您的标签中显示另一个时间(华盛顿有-7个时差)。关于这个主题有很多问题和答案(一个例子:)


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

可能非常明显,但是您在日期选择器上启用了用户交互功能吗?-只是测试了不会出现这种情况。我想可能是这样从字符串设置的时间导致UIDatePicker出现问题-请使用以下命令正确设置日期以检查此问题:NSDateFormatter*dateFormat=[[NSDateFormatter alloc]init];[dateFormat setDateFormat:@“yyyy'-'MM'-'dd”];NSDate*anyDate=[dateFormat dateFromString:@“2019-09-11”];[datePicker setDate:anyDate];[dateFormat release];John…这不是“日期”…这是“时间”…我的代码在上面。明白了!我在IB中检查了最短和最长的日期…删除了它,它就像冠军一样工作!非常感谢您的帮助…我真的很感激!