• 下拉和上拉刷新


        刷新的时候有两种方法:①第三方库  ②系统自带的库

    /************第三方库*********************************/

    1.首先导入EGOTableViewPullRefresh第三方库,导入头文件

    2.定义一个全局变量

           EGORefreshTableHeaderView *_refreshView;

    3.初始化_refreshView,遵守协议,将它加入_tableView中

    1     _refreshView = [[EGORefreshTableHeaderView alloc] initWithFrame:CGRectMake(0, -480, self.view.frame.size.width, 480)];
    2     _refreshView.delegate = self;
    3     [_tableView addSubview:_refreshView];

    4.在引用第三方库的时候,要将其放入scrollView的函数中用

     1 - (void)scrollViewDidScroll:(UIScrollView *)scrollView
     2 {
     3     [_refreshView egoRefreshScrollViewDidScroll:scrollView];
     4     
     5 }
     6 
     7 //停止滑行
     8 - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
     9 {
    10     [_refreshView egoRefreshScrollViewDidEndDragging:scrollView];
    11 }
    12 
    13 //最后一次刷新时间
    14 - (NSDate *)egoRefreshTableHeaderDataSourceLastUpdated:(EGORefreshTableHeaderView *)view
    15 {
    16     return [NSDate date];//输出当前时间
    17 }

    5.在你下拉的过程中,如果不断的下拉的时候,会刷新好多次,不符合我们的要求,所以这里要定义个BOOL变量来判断他是否是在加载数据。。。。

    1 BOOL _isRefresh;
    2 //是否在加载数据
    3 - (BOOL)egoRefreshTableHeaderDataSourceIsLoading:(EGORefreshTableHeaderView *)view
    4 {
    5    
    6     return _isRefresh;
    7 }

    6.在触发刷新的时候,将isRefresh的值变为YES,表示他正在刷新中,不允许你再进行请求,刷新数据。

    1 //触发刷新
    2 - (void)egoRefreshTableHeaderDidTriggerRefresh:(EGORefreshTableHeaderView *)view
    3 {
    4     //刷新中
    5     _isRefresh = YES;
    6     //一般这里开始进行网络请求,刷新数据,这里用timer来模拟一下
    7     [NSTimer scheduledTimerWithTimeInterval:3 target:self selector:@selector(endRefresh) userInfo:nil repeats:NO];
    8     
    9 }

    7.在结束刷新的时候,将数据加到_dataArray中,刷新table列表,将_isRefresh值变为NO,表示已刷新结束,可以再次请求了。。。。

    1 //结束刷新
    2 - (void)endRefresh
    3 {
    4     [_dataArray addObject:@"成都"];
    5     [_tableView reloadData];
    6     //结束刷新
    7     [_refreshView egoRefreshScrollViewDataSourceDidFinishedLoading:_tableView];
    8     _isRefresh = NO;
    9 }
  • 相关阅读:
    1837. Isenbaev's Number(floyd)
    1414. Astronomical Database(STL)
    1067. Disk Tree(字符串)
    1682. Crazy Professor(并查集)
    1650. Billionaires(线段树)
    1316. Electronic Auction(树状数组)
    1701. Ostap and Partners(并查集-关系)
    大数字运算——2、BigDecimal
    大数字运算——1、BigInteger
    java中的访问修饰符2
  • 原文地址:https://www.cnblogs.com/Angelone/p/4366403.html
Copyright © 2020-2023  润新知