2017-05-03 5 views
2

私は設定していますが、最大の日付を設定できますが、残りの日付を無効にすることはできません。 例 - 生年月日。MDDatePickerの目標日時を最大にする方法

いずれかがそのことについて考えています。ありがとうございます。 enter image description here

+0

あなたは解決策を見つけましたか? –

答えて

0
-(void) dateTextField:(id)sender 
{ 
    UIDatePicker *picker = (UIDatePicker*) dateOfBirthField.inputView; 
    // [picker setMaximumDate:[NSDate date]]; 
    [picker setMinimumDate:[NSDate date]]; 

    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
    NSDate *eventDate = picker.date; 
    [dateFormat setDateFormat:@"yyyy/MM/dd"]; 

    NSString *dateString = [dateFormat stringFromDate:eventDate]; 
    dateOfBirthField.text = [NSString stringWithFormat:@"%@",dateString]; 
} 
+0

UIDatePickerではなくMDDatePicker Third Party Libraryを使用しています。 –

+0

最小の日付を設定している場所。そのメソッドまたはプロパティに従って、ライブラリ内で最大の日付を検索します –

0

MDDatePickerDialogクラスは、その最小の日付を管理するためにMDCalendarを使用しています。あなたがMDCalendarの実装を見ていきます場合は、initialize方法で、以下の実装を見つける:

_maximumDate = [NSDateHelper mdDateWithYear:2037 month:12 day:31]; 

まず、あなたはこれを移動させることができ、これは必要な変数である見るためにあなたの好みの静的な値にこの日付を設定してみてくださいプロパティの宣言をMDCalendarというヘッダーファイルに追加して、maximumDate変数をクラスの外部からアクセス可能にします。次のステップとして、MDDatePickerDialogにプロパティを設定して、最小日付を設定するのと同じ方法で最大日付を設定することができます。

MDDatePicker.mファイル

- (void)setMinimumDate:(NSDate *)minimumDate { 
    self.calendar.minimumDate = minimumDate; 
} 

P.S.から一部日付のバリデーションを処理することを忘れないでください。日付が有効で、最大日付が最小日付よりも早くならないようにしてください。

0

最大値にしたい日付を追加するだけで、今週の日付を現在の日付から選択する必要があります。ここでは、私が書いたコードですピッカーは1行追加するだけです:

- _datePicker.maximumDate = [[NSDate date] dateByAddingTimeInterval:60*60*24*7]; ; 

このメソッドをMDCalender.mファイルに検索し、このコードで置き換えてください。

- (BOOL)shouldSelectDate:(NSDate *)date { 
    BOOL result; 
    if ([self.maximumDate timeIntervalSince1970] >= date.timeIntervalSince1970) { 
     result = 
     (date.timeIntervalSince1970 >= self.minimumDate.timeIntervalSince1970); 
     return result; 
    } 
    return result; 
} 

私のために働いた。ありがとう

関連する問題