ios之自定义下拉刷新

前言

如果想自己实现下拉刷新控件,可以参考一下以下的思路,从李明杰老师上学的

先说一下使用的场景,一般都是自定义tableView的headerView,然后通过各种方法让其实现有下拉刷新的功能

  • 全局变量
@property (nonatomic, weak) UILabel *label;
  • 写成一个方法(先制作headerView)
- (void)setupRefresh{
    UIView *headerView = [[UIView alloc]init];
    headerView.height = 50;
    headerView.width = self.tableView.width;
    headerView.y = -50;
    [self.tableView addSubview:headerView];
    
    UILabel *label = [[UILabel alloc]init];
    label.text = @"下拉可以刷新";
    [label sizeToFit];
    label.center = CGPointMake(headerView.width * 0.5, headerView.height * 0.5);
    [headerView addSubview:label];
    self.label = label;
}
  • 监听scrollView的拖拽(根据拖拽程度判断该执行什么)
// 高度直接写死了,如果有需要的同学换一下高度就可以
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
    if (scrollView.contentInset.top == 149) {
        return;
    }
    
    if (scrollView.contentOffset.y <= -149.0) {
        self.label.text = @"松开立即刷新";
    }else {
        self.label.text = @"下拉可以刷新";
    }
}

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
    if (scrollView.contentOffset.y <= - 149.0) { // 进入下拉刷新状态
        self.label.text = @"正在刷新";
        [UIView animateWithDuration:0.5 animations:^{
            UIEdgeInsets inset = scrollView.contentInset;
            inset.top = 149;
            scrollView.contentInset = inset;
        }];
        
        // 模拟一下刷新,延迟2秒
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            [UIView animateWithDuration:0.5 animations:^{
                UIEdgeInsets inset = scrollView.contentInset;
                inset.top = 99;
                scrollView.contentInset = inset;
            }];
        });
    }
}

以上就是实现下拉刷新控件的思路,上拉加载也是一样的道理,有兴趣的朋友自己研究一下

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,660评论 4 61
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,218评论 25 709
  • 回想起来,从小时候我就好强,一直给自已定目标,可是现在,我讨厌这样的自已,我觉得自已很不要脸,眼看着就24岁...
    般若H阅读 1,594评论 0 0
  • 有一个时候 我突然闻到一股烤羊肉的焦香 你说太晚了,改天吧 呵呵 改天? 改天 那香味也就改道了呢 那心情也就拐弯...
    紫月砂雪阅读 1,301评论 2 2
  • 夜如泼墨一般降临了,与夜的黑相照应的是教学楼的灯火通明。每间教室都如同一个小方格,里面发出橘黄色却并不燥热的光。所...
    wyh520阅读 1,360评论 0 1

友情链接更多精彩内容