12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- // 代码地址: https://github.com/CoderMJLee/MJRefresh
- // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000
- #import <UIKit/UIKit.h>
- #import <objc/message.h>
- // 弱引用
- #define MJWeakSelf __weak typeof(self) weakSelf = self;
- // 日志输出
- #ifdef DEBUG
- #define MJRefreshLog(...) NSLog(__VA_ARGS__)
- #else
- #define MJRefreshLog(...)
- #endif
- // 过期提醒
- #define MJRefreshDeprecated(instead) NS_DEPRECATED(2_0, 2_0, 2_0, 2_0, instead)
- // 运行时objc_msgSend
- #define MJRefreshMsgSend(...) ((void (*)(void *, SEL, UIView *))objc_msgSend)(__VA_ARGS__)
- #define MJRefreshMsgTarget(target) (__bridge void *)(target)
- // RGB颜色
- #define MJRefreshColor(r, g, b) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:1.0]
- // 文字颜色
- #define MJRefreshLabelTextColor MJRefreshColor(90, 90, 90)
- // 字体大小
- #define MJRefreshLabelFont [UIFont boldSystemFontOfSize:14]
- // 常量
- UIKIT_EXTERN const CGFloat MJRefreshLabelLeftInset;
- UIKIT_EXTERN const CGFloat MJRefreshHeaderHeight;
- UIKIT_EXTERN const CGFloat MJRefreshFooterHeight;
- UIKIT_EXTERN const CGFloat MJRefreshFastAnimationDuration;
- UIKIT_EXTERN const CGFloat MJRefreshSlowAnimationDuration;
- UIKIT_EXTERN NSString *const MJRefreshKeyPathContentOffset;
- UIKIT_EXTERN NSString *const MJRefreshKeyPathContentSize;
- UIKIT_EXTERN NSString *const MJRefreshKeyPathContentInset;
- UIKIT_EXTERN NSString *const MJRefreshKeyPathPanState;
- UIKIT_EXTERN NSString *const MJRefreshHeaderLastUpdatedTimeKey;
- UIKIT_EXTERN NSString *const MJRefreshHeaderIdleText;
- UIKIT_EXTERN NSString *const MJRefreshHeaderPullingText;
- UIKIT_EXTERN NSString *const MJRefreshHeaderRefreshingText;
- UIKIT_EXTERN NSString *const MJRefreshAutoFooterIdleText;
- UIKIT_EXTERN NSString *const MJRefreshAutoFooterRefreshingText;
- UIKIT_EXTERN NSString *const MJRefreshAutoFooterNoMoreDataText;
- UIKIT_EXTERN NSString *const MJRefreshBackFooterIdleText;
- UIKIT_EXTERN NSString *const MJRefreshBackFooterPullingText;
- UIKIT_EXTERN NSString *const MJRefreshBackFooterRefreshingText;
- UIKIT_EXTERN NSString *const MJRefreshBackFooterNoMoreDataText;
- UIKIT_EXTERN NSString *const MJRefreshHeaderLastTimeText;
- UIKIT_EXTERN NSString *const MJRefreshHeaderDateTodayText;
- UIKIT_EXTERN NSString *const MJRefreshHeaderNoneLastDateText;
- // 状态检查
- #define MJRefreshCheckState \
- MJRefreshState oldState = self.state; \
- if (state == oldState) return; \
- [super setState:state];
- // 异步主线程执行,不强持有Self
- #define MJRefreshDispatchAsyncOnMainQueue(x) \
- __weak typeof(self) weakSelf = self; \
- dispatch_async(dispatch_get_main_queue(), ^{ \
- typeof(weakSelf) self = weakSelf; \
- {x} \
- });
|