MJRefresh tableview基本刷新的封装
代码太杂了,简单剔出来。
头文件
1 @protocol UMSTableViewFresherDelegate <NSObject> 2 //下拉刷新 3 -(void)freshHeadMethod; 4 //上划刷新 5 -(void)freshFooterMethod; 6 @end 7 8 @interface UMSTableViewFresher : NSObject 9 @property(nonatomic,weak) id<UMSTableViewFresherDelegate>delegate; 10 - (void)addTableViewFresher:(UITableView *) tableView; 11 //刷新完成后调用 12 - (void)doneWithView; 13 @end
实现
1 #import "UMSTableViewFresher.h" 2 #import "MJRefresh/MJRefresh.h" 3 4 @interface UMSTableViewFresher () 5 { 6 MJRefreshNormalHeader *header_; 7 MJRefreshBackNormalFooter *footer_; 8 } 9 10 @property (nonatomic,strong) UITableView * goodsFestivalTableView; 11 @property (nonatomic,strong) MJRefreshComponent *refreshView; 12 13 @end 14 15 @implementation UMSTableViewFresher 16 17 - (void)addTableViewFresher:(UITableView *) tableView{ 18 [self addHeadView:tableView]; 19 [self addFooterView:tableView]; 20 } 21 22 #pragma mark 添加刷新的headerview 23 - (void)addHeadView:(UITableView *) tableView{ 24 25 __weak UMSTableViewFresher * weakSelf = self; 26 tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{ 27 28 weakSelf.refreshView = tableView.mj_header; 29 [self.delegate freshHeadMethod]; 30 }]; 31 header_ = tableView.mj_header; 32 } 33 34 35 - (void)addFooterView:(UITableView *) tableView{ 36 37 __weak UMSTableViewFresher * weakSelf = self; 38 tableView.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingBlock:^{ 39 weakSelf.refreshView = tableView.mj_footer; 40 [self.delegate freshFooterMethod]; 41 }]; 42 footer_ = tableView.mj_footer; 43 } 44 45 // 刷新完成后执行方法 46 - (void)doneWithView 47 { 48 [self.refreshView endRefreshing]; 49 } 50 @end
用addTableViewFresher对tableview添加刷新,实现下拉刷新freshHeadMethod和上划刷新freshFooterMethod的回调方法,在tableview刷新完成后调用doneWithView方法,白白白~