PGDatePicker+MinuteAndSecond.m 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. //
  2. // PGDatePicker+MinuteAndSecond.m
  3. // Demo
  4. //
  5. // Created by piggybear on 2018/3/18.
  6. // Copyright © 2018年 piggybear. All rights reserved.
  7. //
  8. #import "PGDatePicker+MinuteAndSecond.h"
  9. #import "PGDatePickerHeader.h"
  10. #import "PGDatePicker+Common.h"
  11. #import "PGDatePicker+Logic.h"
  12. @implementation PGDatePicker (MinuteAndSecond)
  13. - (void)minuteAndSecond_setupSelectedDate {
  14. NSString *minuteString = [self.pickerView textOfSelectedRowInComponent:0];
  15. minuteString = [minuteString componentsSeparatedByString:self.minuteString].firstObject;
  16. self.selectedComponents.minute = [minuteString integerValue];
  17. NSString *secondString = [self.pickerView textOfSelectedRowInComponent:1];
  18. secondString = [secondString componentsSeparatedByString:self.secondString].firstObject;
  19. self.selectedComponents.second = [secondString integerValue];
  20. }
  21. - (void)minuteAndSecond_setDateWithComponents:(NSDateComponents *)components animated:(BOOL)animated {
  22. if (components.minute > self.maximumComponents.minute) {
  23. components = self.maximumComponents;
  24. }
  25. if (components.minute < self.minimumComponents.minute) {
  26. components = self.minimumComponents;
  27. }
  28. NSString *string = [NSString stringWithFormat:@"%ld", components.minute];
  29. if (components.minute < 10) {
  30. string = [NSString stringWithFormat:@"0%ld", components.minute];
  31. }
  32. NSInteger row = 0;
  33. BOOL isExist = [self.minuteList containsObject:string];
  34. if (isExist) {
  35. row = [self.minuteList indexOfObject:string];
  36. }
  37. [self.pickerView selectRow:row inComponent:0 animated:animated];
  38. {
  39. NSString *string = [NSString stringWithFormat:@"%ld", components.second];
  40. if (components.second < 10) {
  41. string = [NSString stringWithFormat:@"0%ld", components.second];
  42. }
  43. NSInteger row = 0;
  44. BOOL isExist = [self.secondList containsObject:string];
  45. if (isExist) {
  46. row = [self.secondList indexOfObject:string];
  47. }
  48. [self.pickerView selectRow:row inComponent:1 animated:animated];
  49. }
  50. }
  51. - (void)minuteAndSecond_didSelectWithComponent:(NSInteger)component {
  52. NSDateComponents *dateComponents = [self.calendar components:self.unitFlags fromDate:[NSDate date]];
  53. NSString *str = [[self.pickerView textOfSelectedRowInComponent:0] componentsSeparatedByString:self.minuteString].firstObject;
  54. dateComponents.minute = [str integerValue];
  55. if (component == 0) {
  56. BOOL refresh = [self setSecondList3WithComponent:component dateComponents:dateComponents refresh:true];
  57. [self.pickerView reloadComponent:1 refresh:refresh];
  58. }
  59. }
  60. @end