私は設定していますが、最大の日付を設定できますが、残りの日付を無効にすることはできません。 例 - 生年月日。MDDatePickerの目標日時を最大にする方法
いずれかがそのことについて考えています。ありがとうございます。
私は設定していますが、最大の日付を設定できますが、残りの日付を無効にすることはできません。 例 - 生年月日。MDDatePickerの目標日時を最大にする方法
いずれかがそのことについて考えています。ありがとうございます。
-(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];
}
UIDatePickerではなくMDDatePicker Third Party Libraryを使用しています。 –
最小の日付を設定している場所。そのメソッドまたはプロパティに従って、ライブラリ内で最大の日付を検索します –
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.から一部日付のバリデーションを処理することを忘れないでください。日付が有効で、最大日付が最小日付よりも早くならないようにしてください。
最大値にしたい日付を追加するだけで、今週の日付を現在の日付から選択する必要があります。ここでは、私が書いたコードですピッカーは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;
}
私のために働いた。ありがとう
あなたは解決策を見つけましたか? –