美文网首页
TableView自带下拉加载,上拉更多

TableView自带下拉加载,上拉更多

作者: Sui_H | 来源:发表于2019-03-25 17:29 被阅读0次
2564904-c50b8a137cbda850.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刷新的代码,代码没难度,有用直接复制代码即可

相关文章

网友评论

      本文标题:TableView自带下拉加载,上拉更多

      本文链接:https://www.haomeiwen.com/subject/cgybvqtx.html