美文网首页
对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的浅读

    以前自己也看过一些框架源码,但是都只是看的很粗,只看了个大概,完全没有理解。在受到刺激下,决定一改以前的坏...

  • ios ~ UITableView 设置上边两个圆角,下拉的时候

    我想要一个黑色的背景,mj_refresh 背景黑色 第0种方法:设置UIView的 view.layer.mas...

  • 缘深缘浅

    有些书要深读,深读的书读浅了,是浪费了书和时间;有些书要浅读,浅读的书读深了只会让人矫情;人也是一样的,深读的东西...

  • 浅读

    浅读秋的片段,野花,山石,清风,溪水,绿酒初尝,一枕小窗。 一枝淡笔,一纸新殇,日影穿过廊间,跌落一串串光影,咏叹...

  • 语文教学可浅可深

    每篇课文,都可以读浅,也可以读深。所谓读浅,就是仅仅读出课文想要表达的基本内容。读深,就是读出课文背后隐含的内容,...

  • 《绝代双骄》书评

    浅读《绝代双骄》 ...

  • 《陆小凤传奇》书评

    浅读《陆小凤传奇》 ...

  • 3个月读了20本书,只有这3本值得重读。

    作家冰心曾说:“读书好,好读书,读好书”。其中“读好书”就是指读对自己有益的书。这句话让我受益匪浅,读书不止是答疑...

  • 书与狗

    读书有方法的:有些书要浅读,有些书要深读。宜浅读的书,如果深读,有可能就会坏事,那就已经给他陷住了。 ...

  • 新年第一本书的读书反思

    年末,参加了“浅阅深读”的共读一本书,读的是《非暴力沟通》。 整个活动,有序又不失活泼。“浅阅深读”团队前期一定做...

网友评论

      本文标题:对MJ_Refresh的浅读

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