MJRefreshConst.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. // 代码地址: https://github.com/CoderMJLee/MJRefresh
  2. #import <UIKit/UIKit.h>
  3. #import <objc/message.h>
  4. // 弱引用
  5. #define MJWeakSelf __weak typeof(self) weakSelf = self;
  6. // 日志输出
  7. #ifdef DEBUG
  8. #define MJRefreshLog(...) NSLog(__VA_ARGS__)
  9. #else
  10. #define MJRefreshLog(...)
  11. #endif
  12. // 过期提醒
  13. #define MJRefreshDeprecated(DESCRIPTION) __attribute__((deprecated(DESCRIPTION)))
  14. // 运行时objc_msgSend
  15. #define MJRefreshMsgSend(...) ((void (*)(void *, SEL, UIView *))objc_msgSend)(__VA_ARGS__)
  16. #define MJRefreshMsgTarget(target) (__bridge void *)(target)
  17. // RGB颜色
  18. #define MJRefreshColor(r, g, b) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:1.0]
  19. // 文字颜色
  20. #define MJRefreshLabelTextColor MJRefreshColor(90, 90, 90)
  21. // 字体大小
  22. #define MJRefreshLabelFont [UIFont boldSystemFontOfSize:14]
  23. // 常量
  24. UIKIT_EXTERN const CGFloat MJRefreshLabelLeftInset;
  25. UIKIT_EXTERN const CGFloat MJRefreshHeaderHeight;
  26. UIKIT_EXTERN const CGFloat MJRefreshFooterHeight;
  27. UIKIT_EXTERN const CGFloat MJRefreshTrailWidth;
  28. UIKIT_EXTERN const CGFloat MJRefreshFastAnimationDuration;
  29. UIKIT_EXTERN const CGFloat MJRefreshSlowAnimationDuration;
  30. UIKIT_EXTERN NSString *const MJRefreshKeyPathContentOffset;
  31. UIKIT_EXTERN NSString *const MJRefreshKeyPathContentSize;
  32. UIKIT_EXTERN NSString *const MJRefreshKeyPathContentInset;
  33. UIKIT_EXTERN NSString *const MJRefreshKeyPathPanState;
  34. UIKIT_EXTERN NSString *const MJRefreshHeaderLastUpdatedTimeKey;
  35. UIKIT_EXTERN NSString *const MJRefreshHeaderIdleText;
  36. UIKIT_EXTERN NSString *const MJRefreshHeaderPullingText;
  37. UIKIT_EXTERN NSString *const MJRefreshHeaderRefreshingText;
  38. UIKIT_EXTERN NSString *const MJRefreshTrailerIdleText;
  39. UIKIT_EXTERN NSString *const MJRefreshTrailerPullingText;
  40. UIKIT_EXTERN NSString *const MJRefreshAutoFooterIdleText;
  41. UIKIT_EXTERN NSString *const MJRefreshAutoFooterRefreshingText;
  42. UIKIT_EXTERN NSString *const MJRefreshAutoFooterNoMoreDataText;
  43. UIKIT_EXTERN NSString *const MJRefreshBackFooterIdleText;
  44. UIKIT_EXTERN NSString *const MJRefreshBackFooterPullingText;
  45. UIKIT_EXTERN NSString *const MJRefreshBackFooterRefreshingText;
  46. UIKIT_EXTERN NSString *const MJRefreshBackFooterNoMoreDataText;
  47. UIKIT_EXTERN NSString *const MJRefreshHeaderLastTimeText;
  48. UIKIT_EXTERN NSString *const MJRefreshHeaderDateTodayText;
  49. UIKIT_EXTERN NSString *const MJRefreshHeaderNoneLastDateText;
  50. // 状态检查
  51. #define MJRefreshCheckState \
  52. MJRefreshState oldState = self.state; \
  53. if (state == oldState) return; \
  54. [super setState:state];
  55. // 异步主线程执行,不强持有Self
  56. #define MJRefreshDispatchAsyncOnMainQueue(x) \
  57. __weak typeof(self) weakSelf = self; \
  58. dispatch_async(dispatch_get_main_queue(), ^{ \
  59. typeof(weakSelf) self = weakSelf; \
  60. {x} \
  61. });