@@ -97,7 +97,24 @@ - (void)setMode:(TLDatePickerMode)mode
97
97
- (void )resetParams
98
98
{
99
99
if (!self.date ) {
100
- self.date = [NSDate date ];
100
+ self.date = [NSDate date ];
101
+ if (self.maxDate && [self .maxDate compareFrom: self .date] < 0 ) {
102
+ NSCalendarUnit unit = [self calendarUnit ];
103
+ if ([self .date isEqualDate: self .maxDate miniUnit: unit]) { // 小误差范围内修正
104
+ self.maxDate = [NSDate dateWithTimeIntervalSince1970: self .date.timeIntervalSince1970 + 1 ];
105
+ }else {
106
+ NSAssert (NO , @" TLDatePicker: maxDate不能小于默认date" );
107
+ }
108
+ }
109
+ }else {
110
+ if (self.minDate && [self .minDate compareFrom: self .date] > 0 ) {
111
+ NSCalendarUnit unit = [self calendarUnit ];
112
+ if ([self .date isEqualDate: self .minDate miniUnit: unit]) { // 小误差范围内修正
113
+ self.minDate = [NSDate dateWithTimeIntervalSince1970: self .date.timeIntervalSince1970 - 1 ];
114
+ }else {
115
+ NSAssert (NO , @" TLDatePicker: minDate不能大于默认date" );
116
+ }
117
+ }
101
118
}
102
119
103
120
[self .data updateComponentWithDate: self .date];
@@ -112,6 +129,26 @@ - (void)resetParams
112
129
}
113
130
}
114
131
132
+ - (NSCalendarUnit )calendarUnit
133
+ {
134
+ if (self.mode == TLDatePickerModeYear) {
135
+ return NSCalendarUnitYear;
136
+ }
137
+
138
+ if (self.mode == TLDatePickerModeYearAndMonth) {
139
+ return NSCalendarUnitMonth;
140
+ }
141
+ if (self.mode == TLDatePickerModeDate) {
142
+ return NSCalendarUnitDay;
143
+ }
144
+ if (self.mode == TLDatePickerModeTime || self.mode == TLDatePickerModeDateAndTime) {
145
+ return NSCalendarUnitMinute;
146
+ }
147
+
148
+ return NSCalendarUnitSecond;
149
+ }
150
+
151
+
115
152
// / 需要动画的component
116
153
- (void )scrollToSelectedDateWithAnimatedComponent : (TLPickerComponent *)component
117
154
{
0 commit comments