BasePullTableViewController.m 3.55 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
//
//  BasePullTableViewController.m
//  Lighting
//
//  Created by 曹云霄 on 2017/7/12.
//  Copyright © 2017年 上海勾芒科技有限公司. All rights reserved.
//

#import "BasePullTableViewController.h"

@interface BasePullTableViewController ()

@end

@implementation BasePullTableViewController

- (void)viewDidLoad {
    [super viewDidLoad];
19 20 21
    
    [self setupTableView];
    [self setupTableViewAdditional];
22 23
}

24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
#pragma mark -初始化设置

- (void)setupTableView
{
    self.tableView.delegate = self;
    self.tableView.dataSource = self;
    self.tableView.tableFooterView = [UIView new];
    self.pullPageIndex = ONE;
}

#pragma mark - 添加上、下拉刷新

-(void)setupTableViewAdditional
{
    MjRefreshHeaderCustom *headerRefresh = [MjRefreshHeaderCustom headerWithRefreshingTarget:self refreshingAction:@selector(loadTableViewHeader)];
    headerRefresh.stateLabel.hidden = YES;
    headerRefresh.lastUpdatedTimeLabel.hidden = YES;
41
    self.tableView.mj_header = headerRefresh;
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
    [self.tableView.mj_header beginRefreshing];
    self.tableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadTableViewFooter)];
    self.tableView.mj_footer.automaticallyHidden = YES;
}

#pragma mark - 设置无数据代理
- (void)setupNotDataDelegate
{
    self.tableView.emptyDataSetSource = self;
    self.tableView.emptyDataSetDelegate = self;
}

#pragma mark -刷新回调

-(void)loadTableViewHeader
{
    [XBLoadingView showHUDViewWithDefault];
    [self.tableView.mj_footer resetNoMoreData];
    [self setupNotDataDelegate];
    _pullPageIndex = ONE;
    [self loadWebDataSource];
}

-(void)loadTableViewFooter
{
    [XBLoadingView showHUDViewWithDefault];
    [self setupNotDataDelegate];
    _pullPageIndex ++;
    [self loadWebDataSource];
}

#pragma mark -结束刷新

- (void)endRefresh:(EndRefreshType)type
{
    [XBLoadingView hideHUDViewWithDefault];
    if (self.tableView.mj_header.isRefreshing) {
        [self.tableView.mj_header endRefreshing];
    }
    if (self.tableView.mj_footer.isRefreshing) {
        [self.tableView.mj_footer endRefreshing];
    }
    if (type == EndRefreshNotData) {
        [self.tableView.mj_footer endRefreshingWithNoMoreData];
    }
87 88 89
    if (self.tableView.isEmptyDataSetVisible) {
        [self.tableView reloadEmptyDataSet];
    }
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
}

#pragma mark -加载数据 (需重写)

-(void)loadWebDataSource
{
    if (self.tableView.isEmptyDataSetVisible) {
        [self.tableView reloadEmptyDataSet];
    }
}

#pragma mark -UITableViewDelegate,UITableViewDataSource

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 1;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return [UITableViewCell new];
}

#pragma mark - DZNEmptyDataSetSource Methods

- (UIImage *)imageForEmptyDataSet:(UIScrollView *)scrollView
{
    return kNoDataImage;
}

- (NSAttributedString *)descriptionForEmptyDataSet:(UIScrollView *)scrollView
{
    NSDictionary *dic = @{NSFontAttributeName:[UIFont systemFontOfSize:15],NSForegroundColorAttributeName:[UIColor grayColor]};
    NSAttributedString *attr = [[NSAttributedString alloc] initWithString:@"对不起,居然真的没有数据" attributes:dic];
    return attr;
}

- (CGFloat)verticalOffsetForEmptyDataSet:(UIScrollView *)scrollView
{
    return 64;
130 131
}

132 133 134 135 136 137
#pragma mark - DZNEmptyDataSetDelegate Methods

- (BOOL)emptyDataSetShouldShow:(UIScrollView *)scrollView
{
    return YES;
}
138

139 140 141
- (BOOL)emptyDataSetShouldAllowScroll:(UIScrollView *)scrollView
{
    return YES;
142
}
143

144 145

@end