这里是我的代码:一个的UIDatePicker错误
picker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0,40,0,0)];
picker.datePickerMode = UIDatePickerModeDateAndTime;
picker.minuteInterval = 5;
picker.minimumDate = [NSDate date];
好,它的工作很好,直到在这里。 (图片:http://img29.imageshack.us/img29/8277/snap1r.png)
在DatePicker中过去的日子全部变灰。它不能被选中。 和分钟间隔为5.
但是现在当我单击任何已经变灰的行时。 DatePicker的日期返回此刻的时间。
例如:我cliked “9” 上的DatePicker(这是已经过去的时间) 而现在的系统时间是
22:27:57
和DatePicker的日期返回:(图片:http://img42.imageshack.us/img42/2760/nslog.png)
2012-04-08 22:27
因为我的分钟间隔是5分钟,所以我不希望选取器返回的值不能被5除,这会导致我的程序崩溃。
这是一个错误?或者这只是我的问题? 谢谢!
------要检查克(对不起我的英语不是很好)
因为日期选择器的minuteInterval是5。所以DatePicker的日期的返回值只返回可由5分钟divded (等0,5,10,15 .....)
并且我还将属性minimumDate设置为[NSDate日期],以便用户不能选择过去的日期。
但现在用户单击过去的行(变灰),DatePicker的日期将返回当时的时间。
所以日期分钟可以是任何值(0〜60),但我不希望(0,5,10,15 ....)
我已经尽我所能来解释>” <请原谅。
要督察克
感谢您的代码,我突然意识到有解决我的问题的好方法。 但我不知道为什么,我用你的代码存在一些问题(我想这是关于时区)
但我按照你的逻辑,并重新编写代码,我会与大家分享:
unsigned unitFlags_ = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit;
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *comps_ = [gregorian components:unitFlags_ fromDate:[jRemindPicker date]];
NSInteger remainder = [comps_ minute] % 5;
NSLog(@"%i-%i-%i %i:%i", comps_.year, comps_.month, comps_.day, comps_.hour, comps_.minute);
if (remainder) {
/* My Own code /*
} else {
/* My Own Code /*
}
[gregorian release];
抱歉,因为我的英文不是很好。 我的问题是我不能选择一个日期在今天之前.. 请等待我,我会编辑主帖 – Johnny 2012-04-08 16:25:29
对不起。请参阅我的编辑,如果问题是您将来无法选择日期。 – 2012-04-08 16:31:47
我已在主帖中编辑过,请检查:) – Johnny 2012-04-08 16:41:54