2013-09-26 59 views
0

我在我的項目中使用了UIDatePicker控件。在xib文件中添加了UIDatePicker,並以編程方式將諸如minimumDate,maximumDate等約束條件設置爲datePicker。這在模擬器中工作正常,但在設備中,我可以選擇datePicker中的任何日期。UIDatePicker約束在設備中不起作用

示例代碼:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    [self.datePicker setMinimumDate:[NSDate date]]; 
    [self.datePicker setMaximumDate:[[NSDate date] dateByAddingTimeInterval:3*24*60*60]]; 
} 

截圖:

Here, i am able to select the previous dates also.

注:我的工作xcode5 - DP6。

在此先感謝。

+0

您的代碼的哪一部分是您設置最小和最大日期? – bneely

+0

它可以正常工作,請檢查您的IBOutlet連接。 – Balu

+0

我的問題已更新,請檢查。 –

回答

0

添加操作用於在UIDatePickerUIControlEventValueChanged事件並執行檢查是否所選擇的日期比最大日期或更少大於最小日期,並相應地設置日期,像這樣:

- (IBAction)dateValueChanged:(id)sender 
{ 
    NSTimeInterval date = [self.datePicker.date timeIntervalSince1970]; 
    NSTimeInterval maxmimumDate = [self.datePicker.maximumDate timeIntervalSince1970]; 
    NSTimeInterval minimumDate = [self.datePicker.minimumDate timeIntervalSince1970]; 

    if (date < minimumDate) { 
     self.datePicker.date = self.datePicker.minimumDate; 
    } 

    if (date > maxmimumDate) { 
     self.datePicker.date = self.datePicker.maximumDate; 
    } 

    // Use the selected date 
    NSLog(@"%@", self.datePicker.date); 
} 

這會導致UIDatePicker滾動到最大/最小日期,如果您選擇範圍之外的日期。

+0

這是valueChanged事件中的自定義驗證。但是,我們如何使用UIDatePicker的minimumDate,maximumDate屬性來處理? –

+0

在UIDatePicker中似乎存在一個錯誤,通過後續嘗試在最小日期 - 最大日期範圍之外設置日期時,它們應該失敗。上面的代碼通過強制選定的日期到可接受的日期範圍的下限/上限來解決這個錯誤。 – neilco