• 下拉刷新和上拉加载更多(第三方框架MJRefresh)


      1 #import "RootViewController.h"
      2 #import "MJRefresh.h"
      3 @interface RootViewController ()<UITableViewDataSource,UITableViewDelegate,MJRefreshBaseViewDelegate>
      4 {
      5     UITableView *_tableView ;
      6     NSMutableArray *datas;
      7     MJRefreshHeaderView *headerView;
      8     MJRefreshFooterView *footerView;
      9 }
     10 @end
     11 
     12 @implementation RootViewController
     13 
     14 - (void)dealloc
     15 {
     16     [headerView free];
     17     [footerView free];
     18 }
     19 
     20 - (void)viewDidLoad {
     21     [super viewDidLoad];
     22     //初始化tableView
     23     [self initializeTableView];
     24     // 初始化数据
     25     [self initializeData];
     26 }
     27 
     28 - (void)initializeTableView
     29 {
     30     _tableView = [[UITableView alloc] initWithFrame:[[UIScreen mainScreen] bounds] style:UITableViewStylePlain];
     31     _tableView.dataSource = self;
     32     [self.view addSubview:_tableView];
     33     // 初始化刷新控件
     34     [self initializeRefreshView];
     35 }
     36 
     37 
     38 - (void)initializeRefreshView
     39 {
     40     // 下拉刷新
     41     headerView = [MJRefreshHeaderView header];
     42     headerView.scrollView = _tableView;
     43     headerView.delegate = self;
     44     
     45     // 上拉加载更多
     46     footerView = [MJRefreshFooterView footer];
     47     footerView.delegate = self;
     48     footerView.scrollView = _tableView;
     49 }
     50 
     51 /**
     52  *  刷新控件进入开始刷新状态的时候调用
     53  */
     54 - (void)refreshViewBeginRefreshing:(MJRefreshBaseView *)refreshView
     55 {
     56     if ([refreshView isKindOfClass:[MJRefreshHeaderView class]]) {
     57         //下拉刷新
     58         [self loadNewData];
     59     }else{
     60         [self loadMoreData];
     61     }
     62 }
     63 /*
     64  * 刷新数据
     65  */
     66 - (void)loadNewData
     67 {
     68     static int count = 1;
     69     NSMutableArray *array = [NSMutableArray array];
     70     //每次刷新五条数据
     71     for (int i = 0; i < 5; i++) {
     72         NSString *str = [NSString stringWithFormat:@"第%d次刷新",count];
     73         [array addObject:str];
     74     }
     75     // 把新数据加到datas前面
     76     NSMutableArray *newArray = [[NSMutableArray alloc] initWithArray:array];
     77     [newArray addObjectsFromArray:datas];
     78     datas = newArray;
     79     [_tableView reloadData];
     80     [headerView endRefreshing];
     81     count++;
     82 }
     83 
     84 /*
     85  * 加载更多数据
     86  */
     87 - (void)loadMoreData
     88 {
     89     static int count = 1;
     90     NSMutableArray *array = [NSMutableArray array];
     91     for (int j = 0; j < 5; j++) {
     92         NSString *str = [NSString stringWithFormat:@"第%d次加载更多",count];
     93         [array addObject:str];
     94     }
     95     [datas addObjectsFromArray:array];
     96     [_tableView reloadData];
     97     [footerView endRefreshing];
     98     count++;
     99 }
    100 
    101 - (void)initializeData
    102 {
    103     datas = [NSMutableArray arrayWithObjects:@"A",@"B", @"C", @"D", @"E", @"F", @"G", @"H", @"I", @"J", @"K", @"L", @"M", @"N", @"O", @"P", @"Q", @"R", @"S", @"T", @"U", @"V", @"W", @"X", @"Y", @"Z",  nil];
    104 }
    105 
    106 #pragma mark -配置UITableViewDataSource数据
    107 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    108 {
    109     return [datas count];
    110 }
    111 
    112 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    113 {
    114     static NSString *identify = @"cell";
    115     UITableViewCell *cell = [_tableView dequeueReusableCellWithIdentifier:identify];
    116     if (!cell) {
    117         cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identify];
    118         
    119     }
    120     cell.textLabel.text = datas[indexPath.row];
    121     return cell;
    122 }
    123 
    124 @end
    
    
  • 相关阅读:
    Vuex getters
    Vuex namespaced
    Vue 插槽 默认插槽 具名插槽 作用域插槽
    Vue 全局事件总线
    Vue $nextTick
    pubsubjs 消息订阅与发布
    js 解构赋值的连续写法 深层解构
    Vuex mapState mapGetters mapMutations mapActions
    QGIS在Windows上下载安装与建立空间数据库连接
    QGIS怎样设置简体中文以及新建可编辑的多边形的图层
  • 原文地址:https://www.cnblogs.com/lantu1989/p/4625230.html
Copyright © 2020-2023  润新知