KBDatePickerView.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #import <UIKit/UIKit.h>
  2. #import "Macros.h"
  3. #define NUMBER_OF_CELLS 100000
  4. @interface NSString (format)
  5. + (id _Nonnull )kb_stringWithFormat:(const char*) fmt,...;
  6. @end
  7. @interface UIView (Helper)
  8. -(void)removeAllSubviews;
  9. @end
  10. @interface UIStackView (Helper)
  11. - (void)removeAllArrangedSubviews;
  12. - (void)setArrangedViews:(NSArray * _Nonnull )views;
  13. @end
  14. @interface KBTableView: UITableView
  15. @property NSIndexPath * _Nullable selectedIndexPath;
  16. @property id _Nullable selectedValue;
  17. - (id _Nullable )valueForIndexPath:(NSIndexPath *_Nonnull)indexPath;
  18. - (NSArray *_Nonnull)visibleValues;
  19. @end
  20. // Enums are all defined like this to make it easier to convert them to / from string versions of themselves.
  21. #define TABLE_TAG(XX) \
  22. XX(KBTableViewTagMonths, = 501) \
  23. XX(KBTableViewTagDays, )\
  24. XX(KBTableViewTagYears, )\
  25. XX(KBTableViewTagHours, )\
  26. XX(KBTableViewTagMinutes, )\
  27. XX(KBTableViewTagAMPM, )\
  28. XX(KBTaleViewWeekday, )
  29. DECLARE_ENUM(KBTableViewTag, TABLE_TAG)
  30. #define PICKER_MODE(XX) \
  31. XX(KBDatePickerModeTime, ) \
  32. XX(KBDatePickerModeDate, ) \
  33. XX(KBDatePickerModeDateAndTime, ) \
  34. XX(KBDatePickerModeCountDownTimer, )
  35. DECLARE_ENUM(KBDatePickerMode, PICKER_MODE)
  36. @interface KBDatePickerView: UIControl <UITableViewDelegate, UITableViewDataSource>
  37. @property (nonnull, nonatomic, strong) NSDate *date;
  38. @property (nullable, nonatomic, strong) NSDate *minimumDate;
  39. @property (nullable, nonatomic, strong) NSDate *maximumDate;
  40. @property BOOL showDateLabel;
  41. @property KBDatePickerMode datePickerMode;
  42. @property NSInteger topOffset;
  43. @property (nonatomic, copy, nullable) void (^itemSelectedBlock)(NSDate * _Nullable date);
  44. +(id _Nonnull )todayInYear:(NSInteger)year;
  45. + (NSDateFormatter * _Nonnull )sharedDateFormatter;
  46. @end
  47. #define DPLog(format, ...) NSLog(@"[KBDatePickerView] %@",[NSString stringWithFormat:format, ## __VA_ARGS__]);