mj使用

在ios7之前,一直在使用开源的EGO库。但是,在使用过程中发现,普遍封装得过于复杂、耦合性强,不利于集成到自己的项目中。

另外,在ios7之后,一些原有的下拉刷新,上提加载控件表现的就不是那么出色了。除了可能出错外,也不符合扁平化的风格。

后来,在code4App上发现了一个大牛上传了一个开源代码, 仅需几行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定义上下拉刷新的文字说明。

下载下来自己试了下,发现不错。  mark下。

下载链接:http://code4app.com/ios/快速集成下拉上拉刷新/52326ce26803fabc46000000

下面纪录下自己的集成过程,当然,作者所给的demo里面已经很详细的给出了。 这里只不过是纪录下自己的实现过程而已。

1.将MJRefresh文件夹整个导入所需的工程中。

2.文件夹中的MJRefresh.bundle--->arrow@2x.png 图片可自行替换,这个会在刷新过程中显示。

3.可以在MJRefreshConst.h和MJRefreshConst.m文件中自定义显示的文字内容和文字颜色。

4.只要你的view能够滚动,就能集成这个控件,比如UIScrollView、UITableView、UICollectionView

5.在需要使用的地方,加入如下代码即可。

5.1  导入头文件

[cpp] view
plain
copy

  1. #import "MJRefresh.h"  

[cpp] view
plain
copy

  1. #import "MJRefresh.h"  

5.2  遵从协议

[cpp] view
plain
copy

  1. @interface ViewController ()<MJRefreshBaseViewDelegate>  

[cpp] view
plain
copy

  1. @interface ViewController ()<MJRefreshBaseViewDelegate>  

5.3  为你的view添加控件

[cpp] view
plain
copy

  1. MJRefreshFooterView *footer = [MJRefreshFooterView footer];  
  2.     footer.scrollView = myTableView;  
  3.     footer.delegate = self;  
  4.       
  5.     MJRefreshHeaderView *header = [MJRefreshHeaderView header];  
  6.     header.scrollView = myTableView;  
  7.     header.delegate = self;  

[cpp] view
plain
copy

  1. MJRefreshFooterView *footer = [MJRefreshFooterView footer];  
  2.     footer.scrollView = myTableView;  
  3.     footer.delegate = self;  
  4.       
  5.     MJRefreshHeaderView *header = [MJRefreshHeaderView header];  
  6.     header.scrollView = myTableView;  
  7.     header.delegate = self;  

5.4实现代理方法

[cpp] view
plain
copy

  1. #pragma mark - 刷新控件的代理方法  
  2. #pragma mark 开始进入刷新状态  
  3. - (void)refreshViewBeginRefreshing:(MJRefreshBaseView *)refreshView  
  4. {  
  5.     NSLog(@"%@----开始进入刷新状态", refreshView.class);  
  6.     // 2.2秒后刷新表格UI  
  7.     [self performSelector:@selector(doneWithView:) withObject:refreshView afterDelay:2.0];  
  8.   
  9. }  
  10.   
  11. #pragma mark 刷新完毕  
  12. - (void)refreshViewEndRefreshing:(MJRefreshBaseView *)refreshView  
  13. {  
  14.     NSLog(@"%@----刷新完毕", refreshView.class);  
  15. }  
  16.   
  17. #pragma mark 监听刷新状态的改变  
  18. - (void)refreshView:(MJRefreshBaseView *)refreshView stateChange:(MJRefreshState)state  
  19. {  
  20.     switch (state) {  
  21.         case MJRefreshStateNormal:  
  22.             NSLog(@"%@----切换到:普通状态", refreshView.class);  
  23.             break;  
  24.               
  25.         case MJRefreshStatePulling:  
  26.             NSLog(@"%@----切换到:松开即可刷新的状态", refreshView.class);  
  27.             break;  
  28.               
  29.         case MJRefreshStateRefreshing:  
  30.             NSLog(@"%@----切换到:正在刷新状态", refreshView.class);  
  31.             break;  
  32.         default:  
  33.             break;  
  34.     }  
  35. }  
  36.   
  37. #pragma mark 刷新表格并且结束正在刷新状态  
  38. - (void)doneWithView:(MJRefreshBaseView *)refreshView  
  39. {  
  40.     // 刷新表格  
  41.     [myTableView reloadData];  
  42.       
  43.     // (最好在刷新表格后调用)调用endRefreshing可以结束刷新状态  
  44.     [refreshView endRefreshing];  
  45. }  

[cpp] view
plain
copy

  1. #pragma mark - 刷新控件的代理方法  
  2. #pragma mark 开始进入刷新状态  
  3. - (void)refreshViewBeginRefreshing:(MJRefreshBaseView *)refreshView  
  4. {  
  5.     NSLog(@"%@----开始进入刷新状态", refreshView.class);  
  6.     // 2.2秒后刷新表格UI  
  7.     [self performSelector:@selector(doneWithView:) withObject:refreshView afterDelay:2.0];  
  8.   
  9. }  
  10.   
  11. #pragma mark 刷新完毕  
  12. - (void)refreshViewEndRefreshing:(MJRefreshBaseView *)refreshView  
  13. {  
  14.     NSLog(@"%@----刷新完毕", refreshView.class);  
  15. }  
  16.   
  17. #pragma mark 监听刷新状态的改变  
  18. - (void)refreshView:(MJRefreshBaseView *)refreshView stateChange:(MJRefreshState)state  
  19. {  
  20.     switch (state) {  
  21.         case MJRefreshStateNormal:  
  22.             NSLog(@"%@----切换到:普通状态", refreshView.class);  
  23.             break;  
  24.               
  25.         case MJRefreshStatePulling:  
  26.             NSLog(@"%@----切换到:松开即可刷新的状态", refreshView.class);  
  27.             break;  
  28.               
  29.         case MJRefreshStateRefreshing:  
  30.             NSLog(@"%@----切换到:正在刷新状态", refreshView.class);  
  31.             break;  
  32.         default:  
  33.             break;  
  34.     }  
  35. }  
  36.   
  37. #pragma mark 刷新表格并且结束正在刷新状态  
  38. - (void)doneWithView:(MJRefreshBaseView *)refreshView  
  39. {  
  40.     // 刷新表格  
  41.     [myTableView reloadData];  
  42.       
  43.     // (最好在刷新表格后调用)调用endRefreshing可以结束刷新状态  
  44.     [refreshView endRefreshing];  
  45. }  

6.你可以通过调用beginRefreshing自动进入下拉刷新状态。

7.你可以通过调用endRefreshing结束刷新状态。

8.为了保证内部不泄露,最好在控制器的dealloc中释放占用的内存
- (void)dealloc
{
[_header free];
[_footer free];
}

时间: 2024-08-01 22:06:59

mj使用的相关文章

MJ:世界黑客大师赛的故事

    十五年以前,如同现在一样闷热的夜晚,人们屏气凝声,守在电视机前听萨马兰奇说出:"The city of Beijing". 彼时年轻的我们之所以雀跃,是因为确信,可以从此平等地分享人类的荣光. 从邀请全世界顶级运动员到中国拼体力,到邀请全世界顶级黑客到北京拼智力,中间经过了漫长的十五年.并不算晚,世界黑客大师赛(WCTF)如约而至. [WCTF 现场] MJ 通常来说,希望举办奥运会的国家,都品尝过金牌的滋味.举办世界黑客大师赛的 360Vulcan 团队,也曾经多次在世界顶级

专访Pwn2Own 2017 世界黑客大赛冠军队长MJ:这是一场出乎我意料的“坑爹”之旅

  4 月 5 日,雷锋网编辑要 360 安全战队队长.世界著名黑客 MJ 0011 (以下简称 MJ)拿着前不久在 Pwn2Own 2017 世界黑客大赛上的冠军奖杯拍个照. MJ 转了转奖杯的齿轮说,把它放在办公室里还能磨磨指甲. 其实,一个月前, MJ 本以为会云淡风轻地去加拿大参加大赛,没想到等待他的是一场"坑爹"之旅. [MJ 很伤心,没想到经过一场高度紧张的黑客大赛后,他没有瘦下来] 高难度漏洞:厂商要过年 3 月11日,携带一揽子"神奇漏洞"的 MJ

网络出现MJ复活视频短片

日前,网上惊现一段画面模糊的18秒短片,片中出现疑似MJ的身影--"MJ未死"之说又开始在粉丝间流传. 此外,以迈克尔·杰克逊过世前演唱会排练为主题的3D电影<天王终点>,其最新剧照于近日 曝光.而自从警方将杰克逊的去世定义为"没有动机和预谋的杀人案"后,嫌疑目标.MJ私人医生莫里,已成为MJ身后纷扰连锁事件的主角. 文字整理 蔡泳琪 疑似MJ跳下"验尸车" 日前,网上流传一段画面模糊的18秒短片,拍摄者追着一辆写着"验尸部

MJ医生不会心肺复苏法?保安指证默里过失杀人

MJ母亲凯瑟琳.兄长杰梅因出席聆讯 已故流行乐坛天王迈克尔·杰克逊(MJ)逝世1年多,其私人医生默里的"过失杀人"案件近日在洛杉矶最高法院正式进行初步聆讯,作供的MJ工作人员将矛头直指默里,认定他的疏忽导致MJ死亡. MJ家人包括母亲凯瑟琳.兄长杰梅因及姐姐娜托均有出席聆讯,但他的大儿子王子·迈克尔则没有出庭.MJ的前保安主任法海姆·穆哈默德在庭上大爆默里连为MJ做心肺复苏法(CPR)都不懂,法海姆指当时他与默里在MJ的房中等候救护车,默里突然惊慌地问他懂不懂得CPR,"我知

谭咏麟个唱MJ造型现身全场爆满气氛热烈(图)

明显瘦了的谭咏麟,架起墨镜在红馆开唱 新浪娱乐讯 北京时间7月17日消息,据香港媒体报道,一连八场的"谭咏麟2010再度感动香港演唱会"昨晚在红馆揭开序幕.虽然昨晚天文台仍悬挂一号风球,又不时下雨,但无损fans的热情,全场爆满.大会向每名观众派发可变红或蓝色的发泡胶棒,令现场变成一片红蓝海. 演唱会在晚上八点半开始,先由吉他手表演,之后再有一段日本太鼓表演,加上烟雾甚具气势.谭咏麟随即升上台,明显瘦了一圈的谭咏麟架上太阳眼镜,以一身MJ造型出场,谭咏麟的衣服上更有"AT&q

Lucas献出人生首场秀模仿MJ舞步网络疯传

Lucas表情酷酷 近日,网上疯传Lucas的一个跳舞片段,片中的Lu-cas在上海一间录音室,随着迈克尔·杰克逊的歌曲<BeatIt>起舞,相当鬼马.[page] Lucas十分认真 Lucas随妈妈柏芝出席电影节活动后,换上便服前往一间录音室,身穿蓝衫.白裤的他,听到音乐响起后,即侧身摆出爷爷谢贤和爸爸霆锋的"谢家插袋"造型,然后开始跳起舞来.虽然有时手脚不协调,但仍见他在模仿MJ的招牌太空舞步,又模仿MJ抬脚.以双手拍大腿的动作,但由于他的双手不够长,只是学了&quo

MJ去世这一事件

我曾经非常喜欢的歌手Michael Jackson去世了,便从网上去找来他的一些经典歌曲.专辑怀一下旧.在Twitter上也看到有许多朋友都有类似的情结,都在翻找着曾经喜欢过的MJ的经典曲目. 不过对于数字http://www.aliyun.com/zixun/aggregation/36256.html">音乐服务商来说,MJ的去世也就成了典型的事件营销.Amazon.AOL music.新浪音乐.百度音乐.1ting-等国内外音乐服务商都制作了相应的专题悼念MJ,其结果也较为明显. 亚

MJ一家接受奥普拉访问母亲曝其曾整容上瘾(图)

MJ父母及三名子女接受奥普拉(左)访问,回顾一代巨星的风采 新浪娱乐讯 北京时间11月10日消息,据香港媒体报道,已故乐坛巨星迈克尔杰克逊(MJ)的父母及子女早前接受名嘴奥普拉访问,MJ母亲曝天王生前整容整上瘾. 她指MJ在青春期时一直认为自己样子丑,直到有天决定整鼻子,由于MJ的鼻子愈整 愈小,她形容细到像牙签.她也表示相信儿子整容上瘾,但因尴尬而不敢向外承认,并含泪坦承至今仍经常想起亡儿,有时更在脑海中听到亡儿的笑声,为怕伤心才不喜欢谈论亡儿. 而MJ爸爸乔则承认曾用皮带打MJ,但从未感到后

科比现身MJ洛杉矶悲壮追悼会表情凝重心情沉重

北京时间7月8日凌晨1点(美国时间7月7日上午),美国歌王迈克尔·约翰逊的公众追悼会在美国洛杉矶湖人队主场斯坦普斯中心举行.来到现场的不仅有美国著名歌星玛丽亚·凯莉.碧昂丝和珍妮弗罗·佩兹等,湖人队当家球星科比·布莱恩特以及前湖人伟大球星魔术师约翰逊也到场为迈克尔·杰克逊哀悼,科比表情凝重,心情非常沉重,整个追悼会场面极为悲壮.