這裏是我的代碼:一個的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