下拉刷新与上拉加载

//声明下拉操作

UIRefreshControl *refreshControl;

//下拉刷新操作
    refreshControl=[[UIRefreshControl alloc]init];

    refreshControl.attributedTitle=[[NSAttributedString alloc]initWithString:@"刷新中。。。。"];

//将下拉操作加入到对应的tableview中

    [self.collentTableview addSubview:refreshControl];

//监听

    [refreshControl addTarget:self action:@selector(refresh) forControlEvents:UIControlEventValueChanged];

-(void)refresh{
    NSLog(@"++++");
    //停止刷新(没有延迟所以它会立即消失)
   
    [refreshControl endRefreshing];
}




//上拉加载
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
    //记录scrollView.frame.size.height+scrollView.contentOffset.y的最大值
    float temp;
    if (scrollView.frame.size.height+scrollView.contentOffset.y > scrollView.contentSize.height+20){
        if (self.upActivityIndicatorView.hidden) {
            temp=scrollView.frame.size.height+scrollView.contentOffset.y;
            [UIView animateWithDuration:0.5 animations:^{
                CGRect tempframe=self.collentTableview.frame;
                tempframe.size.height-=80;
                self.collentTableview.frame=tempframe;
            }];
            self.upActivityIndicatorView.hidden=NO;
            [self.upActivityIndicatorView startAnimating];
        }
    }else if(!self.upActivityIndicatorView.hidden && scrollView.frame.size.height+scrollView.contentOffset.y < temp){
        [UIView animateWithDuration:0.5 animations:^{
            CGRect tempframe=self.collentTableview.frame;
            tempframe.size.height+=80;
            self.collentTableview.frame=tempframe;
            [self.upActivityIndicatorView stopAnimating];
        }];
    }
}

注:

contentSize是scrollview可以滚动的区域,比如frame = (0 ,0 ,320 ,480) contentSize = (320 ,960),代表你的scrollview可以上下滚动,滚动区域为frame大小的两倍。
contentOffset是scrollview当前显示区域顶点相对于frame顶点的偏移量,比如上个例子你拉到最下面,contentoffset就是(0 ,480),也就是y偏移了480
contentInset是scrollview的contentview的顶点相对于scrollview的位置,例如你的contentInset = (0 ,100),那么你的contentview就是从scrollview的(0 ,100)开始显示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值