博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Objective-c 下拉刷新,上拉加载实现原理
阅读量:6548 次
发布时间:2019-06-24

本文共 1920 字,大约阅读时间需要 6 分钟。

hot3.png

#pragma mark+++++++++++++++++++下拉刷新原理+++++++++++++++++++

  • (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView { NSLog(@"scrollViewX:%f scrollViewY:%f",scrollView.contentOffset.x ,scrollView.contentOffset.y); if (scrollView.contentOffset.y <-60) { [UIView animateWithDuration:0.2 animations:^{ self.allTableView.contentInset = UIEdgeInsetsMake(40.0f, 0.0f, 0.0f, 0.0f); } completion:^(BOOL finished){

    /**       *  发起网络请求,请求刷新数据       */      [_dataSource requestListAllData:^(NSArray *array)       {           _allDataSource = [[NSMutableArray alloc]initWithArray:array];           //刷新           [_allTableView reloadData];           self.pag=2;           [UIView animateWithDuration:0.2 animations:^{               self.allTableView.contentInset = UIEdgeInsetsMake(0.0f, 0.0f, 0.0f, 0.0f);           }];       }];  }];

    } } #pragma mark+++++++++++++++++++上拉加载原理+++++++++++++++++++

  • (void)scrollViewDidEndDragging:(UIScrollView )scrollView willDecelerate:(BOOL)decelerate { NSLog(@"%f",scrollView.contentOffset.y); NSLog(@"%f",scrollView.frame.size.height); NSLog(@"%f",scrollView.contentSize.height); /*

    • 关键-->

    • scrollView一开始并不存在偏移量,但是会设定contentSize的大小,所以contentSize.height永远都会比contentOffset.y高一个手机屏幕的

    • 高度;上拉加载的效果就是每次滑动到底部时,再往上拉的时候请求更多,那个时候产生的偏移量,就能让contentOffset.y + 手机屏幕尺寸高大于这

    • 个滚动视图的contentSize.height */ if (scrollView.contentOffset.y + scrollView.frame.size.height >= scrollView.contentSize.height) { NSLog(@"%d %s",LINE,FUNCTION); [UIView commitAnimations];

      [UIView animateWithDuration:1.0 animations:^ { //frame发生的偏移量,距离底部往上提高60(可自行设定) self.allTableView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0); } completion:^(BOOL finished) { __weak typeof(self) weakSelf = self; [_dataSource addListAllDataWithPag:weakSelf.pag Data:^(NSArray *array) { [weakSelf.allDataSource addObjectsFromArray:array]; [weakSelf.allTableView reloadData]; weakSelf.pag+=1;

      }];

      }];

    } }

转载于:https://my.oschina.net/u/2483781/blog/726841

你可能感兴趣的文章
【我在51CTO】礼树迎蛇 红满社区
查看>>
Linux系统之路由配置
查看>>
Python+selenium自动化公共逻辑步骤封装
查看>>
我的友情链接
查看>>
Nginx实战基础篇二 Nginx主配置文件参数详解
查看>>
我简单的emacs配置
查看>>
51cto博客的第一天
查看>>
我的友情链接
查看>>
c#邮件代码
查看>>
案例:Oracle非常规恢复 ASM磁盘组diskgroup被删除使用kfed进行完美恢复
查看>>
leetCode 290. Word Pattern 哈希表
查看>>
管理onedrive与外部用户的共享
查看>>
XenApp 7和XenApp 6在设计上的不同
查看>>
C++ This指针
查看>>
Spring ioc
查看>>
STP决策
查看>>
pxe的实验
查看>>
How to install SuiteCRM on Debian 9
查看>>
我的友情链接
查看>>
MySQL主从复制杂记(1)
查看>>