![](https://img.haomeiwen.com/i2564904/a6d3b349b6cec2fd.jpeg)
一 新建NSObject类,引入MJRefresh
/** .h */
/**
快速创建带上下拉刷新、事件TableView
@param Style 样式
@param frame size
@param headerRefreshing 下拉
@param footerRefreshing 上拉
@param isNeedHeader 是否需要下拉
@param isNeedFooter 是否需要上拉
@return UITableView
*/
+ (UITableView *)addTableViewStyle:(UITableViewStyle)style WithFrame:(CGRect)frame andTarget:(id)target andHeaderWithRefreshing:(SEL) headerRefreshing andFooterWithRefreshing:(SEL)footerRefreshing isHeaderNeed:(BOOL)isNeedHeader isFooterNeed:(BOOL)isNeedFooter;
@end
/** .m */
+ (UITableView *)addTableViewStyle:(UITableViewStyle)style WithFrame:(CGRect)frame andTarget:(id)target andHeaderWithRefreshing:(SEL) headerRefreshing andFooterWithRefreshing:(SEL)footerRefreshing isHeaderNeed:(BOOL)isNeedHeader isFooterNeed:(BOOL)isNeedFooter {
UITableView *tableView;
tableView = [[UITableView alloc]initWithFrame:frame style: style];
tableView.delegate = target;
tableView.dataSource = target;
tableView.tableFooterView = [[UIView alloc]initWithFrame:CGRectZero];
tableView.backgroundColor = [UIColor whiteColor];
/** RefreshHeader为自定义的下拉刷新,这里没需求直接替换Mj自带的就好,代码就不贴了 */
if (isNeedHeader) {
RefreshHeader *gifHeader = [RefreshHeader headerWithRefreshingTarget:target refreshingAction:headerRefreshing];
gifHeader.stateLabel.hidden = YES;
gifHeader.lastUpdatedTimeLabel.hidden = YES;
gifHeader.automaticallyChangeAlpha = YES;
tableView.mj_header = gifHeader;
}
if (isNeedFooter) {
MJRefreshBackNormalFooter *footerView = [MJRefreshBackNormalFooter footerWithRefreshingTarget:target refreshingAction:footerRefreshing];
tableView.mj_footer = footerView;
[footerView setTitle:@"正在加载..." forState:MJRefreshStateRefreshing];
[footerView setTitle:@"点击或上拉加载更多" forState:MJRefreshStateIdle];
[footerView setTitle:@"加载完成" forState:MJRefreshStateNoMoreData];
[footerView setHidden:YES];
}
return tableView;
}
二 使用
/** 懒加载演示 */
- (UITableView *)table_View {
if (!_table_View) {
_table_View = [ControlsFactory addTableViewStyle: UITableViewStylePlain WithFrame:CGRectZero andTarget:self andHeaderWithRefreshing:@selector(requestNewData) andFooterWithRefreshing:@selector(requstMoreData) isHeaderNeed:true isFooterNeed:true];
_table_View.showsVerticalScrollIndicator = NO;
_table_View.separatorStyle = UITableViewCellSeparatorStyleNone;
}
return _table_View;
}
省去了写mj刷新的代码,代码没难度,有用直接复制代码即可
网友评论