PGDatePicker+MonthDay.m 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. //
  2. // PGDatePicker+MonthDay.m
  3. // Demo
  4. //
  5. // Created by piggybear on 2018/4/9.
  6. // Copyright © 2018年 piggybear. All rights reserved.
  7. //
  8. #import "PGDatePicker+MonthDay.h"
  9. #import "PGDatePickerHeader.h"
  10. #import "PGDatePicker+Logic.h"
  11. #import "PGDatePicker+Common.h"
  12. @implementation PGDatePicker (MonthDay)
  13. - (void)monthDay_setupSelectedDate {
  14. NSString *monthString = [self.pickerView textOfSelectedRowInComponent:0];
  15. monthString = [monthString componentsSeparatedByString:self.monthString].firstObject;
  16. NSString *dayString = [self.pickerView textOfSelectedRowInComponent:1];
  17. dayString = [dayString componentsSeparatedByString:self.dayString].firstObject;
  18. self.selectedComponents.month = [monthString integerValue];
  19. self.selectedComponents.day = [dayString integerValue];
  20. }
  21. - (void)monthDay_setDateWithComponents:(NSDateComponents *)components animated:(BOOL)animated {
  22. if (components.month > self.maximumComponents.month) {
  23. components.month = self.maximumComponents.month;
  24. }else if (components.month < self.minimumComponents.month) {
  25. components.month = self.minimumComponents.month;
  26. }
  27. NSInteger row = components.month - self.minimumComponents.month;
  28. [self.pickerView selectRow:row inComponent:0 animated:animated];
  29. {
  30. NSInteger row = 0;
  31. NSString *string = [NSString stringWithFormat:@"%ld", components.day];
  32. BOOL isExist = [self.dayList containsObject:string];
  33. if (isExist) {
  34. row = [self.dayList indexOfObject:string];
  35. }
  36. [self.pickerView selectRow:row inComponent:1 animated:animated];
  37. }
  38. }
  39. - (void)monthDay_didSelectWithComponent:(NSInteger)component {
  40. NSDateComponents *dateComponents = [self.calendar components:self.unitFlags fromDate:[NSDate date]];
  41. NSString *str = [[self.pickerView textOfSelectedRowInComponent:0] componentsSeparatedByString:self.monthString].firstObject;
  42. dateComponents.month = [str integerValue];
  43. if (component == 0) {
  44. BOOL refresh = [self setDayList2WithComponent:component dateComponents:dateComponents refresh:true];
  45. [self.pickerView reloadComponent:1 refresh:refresh];
  46. }
  47. }
  48. @end