File was renamed from Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Venders/MJRefresh/UIScrollView+MJRefresh.m |
| | |
| | | |
| | | #pragma mark - header |
| | | static const char MJRefreshHeaderKey = '\0'; |
| | | - (void)setHeader:(MJRefreshHeader *)header |
| | | - (void)setMj_header:(MJRefreshHeader *)mj_header |
| | | { |
| | | if (header != self.header) { |
| | | if (mj_header != self.mj_header) { |
| | | // 删除旧的,添加新的 |
| | | [self.header removeFromSuperview]; |
| | | [self addSubview:header]; |
| | | [self.mj_header removeFromSuperview]; |
| | | [self insertSubview:mj_header atIndex:0]; |
| | | |
| | | // 存储新的 |
| | | [self willChangeValueForKey:@"header"]; // KVO |
| | | [self willChangeValueForKey:@"mj_header"]; // KVO |
| | | objc_setAssociatedObject(self, &MJRefreshHeaderKey, |
| | | header, OBJC_ASSOCIATION_ASSIGN); |
| | | [self didChangeValueForKey:@"header"]; // KVO |
| | | mj_header, OBJC_ASSOCIATION_ASSIGN); |
| | | [self didChangeValueForKey:@"mj_header"]; // KVO |
| | | } |
| | | } |
| | | |
| | | - (MJRefreshHeader *)header |
| | | - (MJRefreshHeader *)mj_header |
| | | { |
| | | return objc_getAssociatedObject(self, &MJRefreshHeaderKey); |
| | | } |
| | | |
| | | #pragma mark - footer |
| | | static const char MJRefreshFooterKey = '\0'; |
| | | - (void)setFooter:(MJRefreshFooter *)footer |
| | | - (void)setMj_footer:(MJRefreshFooter *)mj_footer |
| | | { |
| | | if (footer != self.footer) { |
| | | if (mj_footer != self.mj_footer) { |
| | | // 删除旧的,添加新的 |
| | | [self.footer removeFromSuperview]; |
| | | [self addSubview:footer]; |
| | | [self.mj_footer removeFromSuperview]; |
| | | [self insertSubview:mj_footer atIndex:0]; |
| | | |
| | | // 存储新的 |
| | | [self willChangeValueForKey:@"footer"]; // KVO |
| | | [self willChangeValueForKey:@"mj_footer"]; // KVO |
| | | objc_setAssociatedObject(self, &MJRefreshFooterKey, |
| | | footer, OBJC_ASSOCIATION_ASSIGN); |
| | | [self didChangeValueForKey:@"footer"]; // KVO |
| | | mj_footer, OBJC_ASSOCIATION_ASSIGN); |
| | | [self didChangeValueForKey:@"mj_footer"]; // KVO |
| | | } |
| | | } |
| | | |
| | | - (MJRefreshFooter *)footer |
| | | - (MJRefreshFooter *)mj_footer |
| | | { |
| | | return objc_getAssociatedObject(self, &MJRefreshFooterKey); |
| | | } |
| | | |
| | | #pragma mark - 过期 |
| | | - (void)setFooter:(MJRefreshFooter *)footer |
| | | { |
| | | self.mj_footer = footer; |
| | | } |
| | | |
| | | - (MJRefreshFooter *)footer |
| | | { |
| | | return self.mj_footer; |
| | | } |
| | | |
| | | - (void)setHeader:(MJRefreshHeader *)header |
| | | { |
| | | self.mj_header = header; |
| | | } |
| | | |
| | | - (MJRefreshHeader *)header |
| | | { |
| | | return self.mj_header; |
| | | } |
| | | |
| | | #pragma mark - other |
| | | - (NSInteger)totalDataCount |
| | | - (NSInteger)mj_totalDataCount |
| | | { |
| | | NSInteger totalCount = 0; |
| | | if ([self isKindOfClass:[UITableView class]]) { |
| | |
| | | } |
| | | |
| | | static const char MJRefreshReloadDataBlockKey = '\0'; |
| | | - (void)setReloadDataBlock:(void (^)(NSInteger))reloadDataBlock |
| | | - (void)setMj_reloadDataBlock:(void (^)(NSInteger))mj_reloadDataBlock |
| | | { |
| | | [self willChangeValueForKey:@"reloadDataBlock"]; // KVO |
| | | objc_setAssociatedObject(self, &MJRefreshReloadDataBlockKey, reloadDataBlock, OBJC_ASSOCIATION_COPY_NONATOMIC); |
| | | [self didChangeValueForKey:@"reloadDataBlock"]; // KVO |
| | | [self willChangeValueForKey:@"mj_reloadDataBlock"]; // KVO |
| | | objc_setAssociatedObject(self, &MJRefreshReloadDataBlockKey, mj_reloadDataBlock, OBJC_ASSOCIATION_COPY_NONATOMIC); |
| | | [self didChangeValueForKey:@"mj_reloadDataBlock"]; // KVO |
| | | } |
| | | |
| | | - (void (^)(NSInteger))reloadDataBlock |
| | | - (void (^)(NSInteger))mj_reloadDataBlock |
| | | { |
| | | return objc_getAssociatedObject(self, &MJRefreshReloadDataBlockKey); |
| | | } |
| | | |
| | | - (void)executeReloadDataBlock |
| | | { |
| | | !self.reloadDataBlock ? : self.reloadDataBlock(self.totalDataCount); |
| | | !self.mj_reloadDataBlock ? : self.mj_reloadDataBlock(self.mj_totalDataCount); |
| | | } |
| | | @end |
| | | |