KBDatePickerView.h 1.7 KB

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