美文网首页
对MJ_Refresh的浅读

对MJ_Refresh的浅读

作者: 风雨兼程_勇往直前 | 来源:发表于2016-09-22 16:34 被阅读154次

            以前自己也看过一些框架源码,但是都只是看的很粗,只看了个大概,完全没有理解。在受到刺激下,决定一改以前的坏习惯,尽自己的能力好好研究下大神们的代码。

    研究mj的代码先要了解他的大体思路:如图

    (这个图是我盗用的,😄)。大体说一下:两大块,头部,脚部,都继承component这个类。在将component之前 我先来看看mj这个库还有哪些其它类。

    相关类

    bundle  存储文件的,图片和国际化语言部分。

    MJRefresh.h主要是对外的一个公共文件

    MJRefreshConst.h 一些常量:如文字大小、颜色、文字内容等等

    其它部分就都是分类:NSBoundle主要是国际化和图片的读取、UIView主要是简化对坐标的获取、UIScrollView+MJExtension也是简化对inset、offset、size的读取。最后我们再来讲讲UIScrollerView+MJRefresh的内容。

    UIScrollerView+MJRefresh 可以将mj加到所指定的UIScrollerView的头部或者脚部。通过runtime机制的关联,将UIScrollerView和mj_header、mj_footer关联起来,这样就可以将它们两个作为UIScrollerView的成员变量。

    了解过这些公用类之后,我们从基类开始(或许有些人喜欢从代码的入口开始,个人习惯而已)component:它是最基础的类,所以做了一些很基础的事情:初始化、布局、监听、监听后操作。因为下拉加载和上拉刷新实现有点不同,所有监听的实现是留给了子类。


          昨天因为公司的事情就没有写了,继续继续(反正没人看 哈哈)。

    状态

    几种刷新的状态,很重要,因为后面的布局,判断等都需要根据它的状态来显示。

    初始化

    其实初始化很简单,除了初始化了状态,其它的都是子类根据自己的需要来显示。

    布局:

    布局也没有做什么,placeSubviews留给子类实现。对view进行判断,如果不是scorllerview就返回。

    监听:

    监听中:主要对contentsize,offset,滑动的方向监听。同时,监听后的操作也是子类实现。

    写到这里的时候,其实我不太想写了,为何?因为我这样讲,根本讲不出来什么东西,只是代码的阅读,根本说不出东西。如果是以前的我,可能我这个就写到这里就不会写了,但是我想,竟然要研究肯定要有吸收才行,不然不是白花时间 了。故我打算自己先写一个下拉刷新,再来对比mj的,看看自己的差距,这样估计我可以写出更多更有营养的东西。

    相关文章

      网友评论

          本文标题:对MJ_Refresh的浅读

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