2013-03-20 136 views
5

奇怪的行爲在IOS 6.1我已經設置最小日期爲當前日期爲我的日期選擇器這樣日期選擇器滾動到過去的日期,即使最小的日期設置爲當前日期

NSDate *currentTime = [NSDate date]; 
[picker setMinimumDate:currentTime]; 

enter image description here

但是,當我運行應用程序,我可以滾動到過去的日期,雖然它沒有選擇,選擇器不會跳回到當前日期。它僅在iOS 6.1版本中發生,而其餘選取器正常運行。

+0

查看我編輯的答案.. – moosa0709 2013-03-20 07:51:48

回答

8

我得到了同樣的問題,因爲你和日期僅設置爲最大日期固定它手動(在這種情況下,我將限制設置爲當前日期):

- (IBAction)pickerValueChanged:(id)sender { 

    dispatch_async(dispatch_get_main_queue(), ^{ 
     UIDatePicker *datePicker = (UIDatePicker *)sender; 

     if ([self.datePicker.date compare:[NSDate date]] == NSOrderedDescending) { 

      datePicker.date = [NSDate date]; 
     } 

    }); 
} 

此功能在來自日期選擇器的日期值確實爲變化。您可以在此設置最大值或最小值。

+0

這是一個問題或答案?如果您有問題,請提出一個新問題http://stackoverflow.com/questions/ask – nhahtdh 2013-05-06 19:00:20

+0

回答一個獎金問題;) – 2013-05-07 06:18:38

+0

請刪除您的「獎金」問題(您將不會得到任何答案,並且它混淆了實際的答案) - 如果你真的想要你的問題得到解答,請提出一個新問題。 – nhahtdh 2013-05-07 06:20:13

2

必須設置最小和最大日期,如:

NSCalendar *calendar = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease]; 
NSDate *currentDate = [NSDate date]; 
NSDateComponents *comps = [[[NSDateComponents alloc] init] autorelease]; 

NSDate *minDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0]; 
[datePicker setMinimumDate:minDate]; 
+0

還是同樣的問題的人。能夠滾動到舊日期。 – 2013-03-20 07:37:48

2

試試這個代碼

NSCalendar *calendar = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease]; 
NSDate *currentDate = [NSDate date]; 
NSDateComponents *comps = [[[NSDateComponents alloc] init] autorelease]; 
[comps setYear:30]; 
NSDate *maxDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0]; 
[comps setYear:-30]; 
NSDate *minDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0]; 

[datePicker setMaximumDate:maxDate]; 
[datePicker setMinimumDate:minDate]; 
+0

真的,你會得到像你的答案方式currunt日期..? – 2013-03-20 07:12:57

+0

@Prem我試過你的解決方案,它不起作用。這是iOS 6.1中的錯誤嗎? – 2013-03-20 07:20:34

+1

http://code4app.net/ios/Local-Notifier/4fb5e7c06803fa3a7f000000我從這個鏈接的示例..教我如果有任何錯誤..thks – moosa0709 2013-03-20 07:20:44

1

該屬性是一個NSDate對象或零(默認),這意味着沒有最大日期。此屬性以及minimumDate屬性可讓您指定有效的日期範圍。如果最小日期值大於最大日期值,則兩個屬性均被忽略。在倒數計時器模式(UIDatePickerModeCountDownTimer)中,最小和最大日期也被忽略。

嘗試設置有效的最小和最大日期。 它適合我。

相關問題