美文网首页iOS开发程序员iOS学习开发
iOS轻量级下拉刷新,上拉加载

iOS轻量级下拉刷新,上拉加载

作者: 九剑仙 | 来源:发表于2017-03-29 15:23 被阅读948次

    追加:iOS11和iPhoneX已适配,由于iOS11中UITableView默认开启高度预估(行高、区头和区尾),由此引起的页面回弹等现象,关闭高度预估即可解决,控件内部已做调整,无需更改代码,替换新版代码即可解决。 --2017/10/11

    最近项目中需要自定义的刷新动画,所以研究了下MJRefresh的实现原理,确实非常巧妙。
    下面说一下mj的实现原理:
    首先,在UITableView或者UICollectionView的最上方和最下方各放置一个刷新的控件<mj_header和mj_footer>;
    然后,实现对UITableView或者UICollectionView的监听,主要使用KVO,监听三个属性,contentOffset,contentSize和滑动手势的状态改变;
    最后,根据监听到的变化,改变刷新控件的显示。

    剩下的就是一些细节的处理,这里有一个我写好的demo,感兴趣的同学可以下载看一下:https://github.com/wangzhaomeng/LLRefresh

    效果图:

    LLRefresh.png

    觉得好,请给个star,谢谢!

    相关文章

      网友评论

      • Twenty_:方便加我QQ 吗: 497553315
      • Twenty_:IOS 10 内存泄漏
        九剑仙:@Twenty_ 你再试一下,改了个细节
        Twenty_:@九剑仙 iOS10的机型, 你用导航栏Push进你的下拉刷新页. 然后返回看看
        九剑仙:@Twenty_ 泄漏代码是哪里,亲测无泄漏呀
      • Twenty_:假若下拉加载,没有更多数据的时候, 好像没有写
      • 7b3e85c5ac3e:写的不错,代码很简洁易懂,已star,顺便补充一下,下拉刷新完后要把状态改回LLRefreshStateWillRefresh
        九剑仙:@iOS随笔 恩恩,知道有这个bug,但是一直没改,谢谢提醒
      • 九剑仙:如有雷同,纯属巧合!

      本文标题:iOS轻量级下拉刷新,上拉加载

      本文链接:https://www.haomeiwen.com/subject/lqownttx.html