UIScrollView下拉刷新效果实现

第一步:为UIScrollView添加‘加载提示View’

    UILabel *refresh = [[UILabel alloc] initWithFrame:CGRectMake(0, -50, 320, 50)];

    refresh.text  = @"下拉刷新";

    self.refresh = refresh;

    refresh.tag = 0;

    [scrollV addSubview:refresh];


第二步:实现UIScrollViewDelegate

//offset发生改变

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{

    if (scrollView.contentOffset.y <= -50) {

        if (self.refresh.tag == 0) {

            self.refresh.text = @"松开刷新";

        }

        self.refresh.tag = 1;

    }else{

//防止用户在下拉到contentOffset.y <= -50后不松手,然后又往回滑动,需要将值设为默认状态

        self.refresh.tag = 0;

        self.refresh.text = @"下拉刷新";

    }

}


//即将结束拖拽

- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset{

    if (self.refresh.tag == 1) {

        [UIView animateWithDuration:.3 animations:^{

            self.refresh.text = @"加载中";

            scrollView.contentInset = UIEdgeInsetsMake(50.0f, 0.0f, 0.0f, 0.0f);

        }];

        //数据加载成功后执行;这里为了模拟加载效果,一秒后执行恢复原状代码

        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{

            [UIView animateWithDuration:.3 animations:^{

                self.refresh.tag = 0;

                self.refresh.text = @"下拉刷新";

                scrollView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);

            }];

        });

    }

}



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值