記錄MJR fresh的一些用法

大部分復(fù)制來自
作者:光之鹽汽水
鏈接:http://www.reibang.com/p/df1f1f265c33
來源:簡書

1肾胯、導(dǎo)入MJRefresh到項(xiàng)目中

cocoapods導(dǎo)入:pod 'MJRefresh'
將MJRefresh文件夾中的所有內(nèi)容拖拽進(jìn)項(xiàng)目中。
兩種方式任選其一。使用時(shí)別忘記引入頭文件:#import "MJRefresh.h"
2、UITableView下拉刷新和上拉刷新
2.1 默認(rèn)下拉界面

// 設(shè)置回調(diào)(一旦進(jìn)入刷新狀態(tài)就會(huì)調(diào)用這個(gè)refreshingBlock)
self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
    //進(jìn)行數(shù)據(jù)刷新操作
}];

// 馬上進(jìn)入刷新狀態(tài)
[self.tableView.mj_header beginRefreshing];

2.2 下拉刷新設(shè)置動(dòng)畫圖片

// 設(shè)置回調(diào)(一旦進(jìn)入刷新狀態(tài)勺远,就調(diào)用target的action,也就是調(diào)用self的loadNewData方法)
self.tableView.mj_header = [MJChiBaoZiHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadNewData)];

// 馬上進(jìn)入刷新狀態(tài)
[self.tableView.mj_header beginRefreshing];

ps:MJChiBaoZiHeader是繼承自MJRefreshGifHeader在塔,在這里面可以自定義加載動(dòng)畫圖片

2.3 默認(rèn)下拉刷新+隱藏時(shí)間

// 設(shè)置回調(diào)(一旦進(jìn)入刷新狀態(tài)胳搞,就調(diào)用target的action,也就是調(diào)用self的loadNewData方法)
MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadNewData)];

// 設(shè)置自動(dòng)切換透明度(在導(dǎo)航欄下面自動(dòng)隱藏)
header.automaticallyChangeAlpha = YES;

// 隱藏時(shí)間
header.lastUpdatedTimeLabel.hidden = YES;

// 馬上進(jìn)入刷新狀態(tài)
[header beginRefreshing];

// 設(shè)置header
self.tableView.mj_header = header;

2.4 默認(rèn)下拉刷新+隱藏時(shí)間姥闪、隱藏狀態(tài)

// 設(shè)置回調(diào)(一旦進(jìn)入刷新狀態(tài)始苇,就調(diào)用target的action,也就是調(diào)用self的loadNewData方法)
MJChiBaoZiHeader *header = [MJChiBaoZiHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadNewData)];

// 隱藏時(shí)間
header.lastUpdatedTimeLabel.hidden = YES;

// 隱藏狀態(tài)
header.stateLabel.hidden = YES;

// 馬上進(jìn)入刷新狀態(tài)
[header beginRefreshing];

// 設(shè)置header
self.tableView.mj_header = header;

2.5 默認(rèn)下拉刷新+自定義文字

// 設(shè)置回調(diào)(一旦進(jìn)入刷新狀態(tài)甘畅,就調(diào)用target的action埂蕊,也就是調(diào)用self的loadNewData方法)
MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadNewData)];

// 設(shè)置文字
[header setTitle:@"Pull down to refresh" forState:MJRefreshStateIdle];
[header setTitle:@"Release to refresh" forState:MJRefreshStatePulling];
[header setTitle:@"Loading ..." forState:MJRefreshStateRefreshing];

// 設(shè)置字體
header.stateLabel.font = [UIFont systemFontOfSize:15];
header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:14];

// 設(shè)置顏色
header.stateLabel.textColor = [UIColor redColor];
header.lastUpdatedTimeLabel.textColor = [UIColor blueColor];

// 馬上進(jìn)入刷新狀態(tài)
[header beginRefreshing];

// 設(shè)置刷新控件
self.tableView.mj_header = header;

2.6 下拉刷新+自定義header

// 設(shè)置回調(diào)(一旦進(jìn)入刷新狀態(tài),就調(diào)用target的action疏唾,也就是調(diào)用self的loadNewData方法)
self.tableView.mj_header = [MJDIYHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadNewData)];
[self.tableView.mj_header beginRefreshing];

ps: MJDIYHeader是繼承自MJRefreshHeader蓄氧,在這里面進(jìn)行自定義header視圖的操作

2.7 上拉刷新 默認(rèn)界面

// 設(shè)置回調(diào)(一旦進(jìn)入刷新狀態(tài)就會(huì)調(diào)用這個(gè)refreshingBlock)
self.tableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
    [weakSelf loadMoreData];
}];

2.8 上拉刷新+設(shè)置動(dòng)畫

// 設(shè)置回調(diào)(一旦進(jìn)入刷新狀態(tài),就調(diào)用target的action槐脏,也就是調(diào)用self的loadMoreData方法)
self.tableView.mj_footer = [MJChiBaoZiFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];
  #import "MJChiBaoZiFooter.h"
  @implementation MJChiBaoZiFooter
  #pragma mark - 重寫方法
  #pragma mark 基本設(shè)置
  - (void)prepare
  {
    [super prepare];
    
    // 設(shè)置正在刷新狀態(tài)的動(dòng)畫圖片
    NSMutableArray *refreshingImages = [NSMutableArray array];
    for (NSUInteger i = 1; i<=3; i++) {
        UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"dropdown_loading_0%zd", i]];
        [refreshingImages addObject:image];
    }
    [self setImages:refreshingImages forState:MJRefreshStateRefreshing];
  }
  @end

2.9 上拉刷新 隱藏刷新狀態(tài)的文字

// 設(shè)置回調(diào)(一旦進(jìn)入刷新狀態(tài)喉童,就調(diào)用target的action,也就是調(diào)用self的loadMoreData方法)
MJChiBaoZiFooter *footer = [MJChiBaoZiFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];

// 當(dāng)上拉刷新控件出現(xiàn)50%時(shí)(出現(xiàn)一半)顿天,就會(huì)自動(dòng)刷新堂氯。這個(gè)值默認(rèn)是1.0(也就是上拉刷新100%出現(xiàn)時(shí),才會(huì)自動(dòng)刷新)
//    footer.triggerAutomaticallyRefreshPercent = 0.5;

// 隱藏刷新狀態(tài)的文字
footer.refreshingTitleHidden = YES;

// 設(shè)置footer
self.tableView.mj_footer = footer;

2.10 上拉刷新 禁止自動(dòng)加載

// 設(shè)置回調(diào)(一旦進(jìn)入刷新狀態(tài)牌废,就調(diào)用target的action咽白,也就是調(diào)用self的loadMoreData方法)
MJRefreshAutoNormalFooter *footer = [MJRefreshAutoNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];

// 禁止自動(dòng)加載
footer.automaticallyRefresh = NO;

// 設(shè)置footer
self.tableView.mj_footer = footer;

2.11 上拉刷新 自定義文字

// 設(shè)置回調(diào)(一旦進(jìn)入刷新狀態(tài),就調(diào)用target的action鸟缕,也就是調(diào)用self的loadMoreData方法)
MJRefreshAutoNormalFooter *footer = [MJRefreshAutoNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];

// 設(shè)置文字
[footer setTitle:@"Click or drag up to refresh" forState:MJRefreshStateIdle];
[footer setTitle:@"Loading more ..." forState:MJRefreshStateRefreshing];
[footer setTitle:@"No more data" forState:MJRefreshStateNoMoreData];

// 設(shè)置字體
footer.stateLabel.font = [UIFont systemFontOfSize:17];

// 設(shè)置顏色
footer.stateLabel.textColor = [UIColor blueColor];

// 設(shè)置footer
self.tableView.mj_footer = footer;

3晶框、UIWebView的下拉刷新和上拉刷新

#pragma mark - 示例
- (void)example31
{
    __weak UIWebView *webView = self.webView;
    webView.delegate = self;
    
    __weak UIScrollView *scrollView = self.webView.scrollView;
    
    // 添加下拉刷新控件
    scrollView.mj_header= [MJRefreshNormalHeader headerWithRefreshingBlock:^{
        [webView reload];
    }];
    
    // 如果是上拉刷新,就以此類推
}

#pragma mark - webViewDelegate
- (void)webViewDidFinishLoad:(nonnull UIWebView *)webView
{
    [self.webView.scrollView.mj_header endRefreshing];
}

4懂从、UICollectionView的下拉刷新和上拉刷新

#pragma mark - 示例
#pragma mark UICollectionView 上下拉刷新
- (void)example21
{
    __weak __typeof(self) weakSelf = self;
    
    // 下拉刷新
    self.collectionView.mj_header= [MJRefreshNormalHeader headerWithRefreshingBlock:^{
        // 增加5條假數(shù)據(jù)
        for (int i = 0; i<10; i++) {
            [weakSelf.colors insertObject:MJRandomColor atIndex:0];
        }
        
        // 模擬延遲加載數(shù)據(jù)授段,因此2秒后才調(diào)用(真實(shí)開發(fā)中,可以移除這段gcd代碼)
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(MJDuration * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            [weakSelf.collectionView reloadData];
            
            // 結(jié)束刷新
            [weakSelf.collectionView.mj_header endRefreshing];
        });
    }];
    [self.collectionView.mj_header beginRefreshing];

    // 上拉刷新
    self.collectionView.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingBlock:^{
        // 增加5條假數(shù)據(jù)
        for (int i = 0; i<5; i++) {
            [weakSelf.colors addObject:MJRandomColor];
        }
        
        // 模擬延遲加載數(shù)據(jù)番甩,因此2秒后才調(diào)用(真實(shí)開發(fā)中侵贵,可以移除這段gcd代碼)
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(MJDuration * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            [weakSelf.collectionView reloadData];
            
            // 結(jié)束刷新
            [weakSelf.collectionView.mj_footer endRefreshing];
        });
    }];
    // 默認(rèn)先隱藏footer
    self.collectionView.mj_footer.hidden = YES;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市缘薛,隨后出現(xiàn)的幾起案子窍育,更是在濱河造成了極大的恐慌卡睦,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蔫骂,死亡現(xiàn)場離奇詭異么翰,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)辽旋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進(jìn)店門浩嫌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人补胚,你說我怎么就攤上這事码耐。” “怎么了溶其?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵骚腥,是天一觀的道長。 經(jīng)常有香客問我瓶逃,道長束铭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任厢绝,我火速辦了婚禮契沫,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘昔汉。我一直安慰自己懈万,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布靶病。 她就那樣靜靜地躺著会通,像睡著了一般。 火紅的嫁衣襯著肌膚如雪娄周。 梳的紋絲不亂的頭發(fā)上涕侈,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天,我揣著相機(jī)與錄音煤辨,去河邊找鬼驾凶。 笑死,一個(gè)胖子當(dāng)著我的面吹牛掷酗,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播窟哺,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼泻轰,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了且轨?” 一聲冷哼從身側(cè)響起浮声,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤虚婿,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后泳挥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體然痊,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年屉符,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了剧浸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,505評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡矗钟,死狀恐怖唆香,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吨艇,我是刑警寧澤躬它,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站东涡,受9級特大地震影響冯吓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜疮跑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一组贺、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧祸挪,春花似錦锣披、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至整以,卻和暖如春胧辽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背公黑。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工邑商, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人凡蚜。 一個(gè)月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓人断,卻偏偏與公主長得像,于是被迫代替她去往敵國和親朝蜘。 傳聞我的和親對象是個(gè)殘疾皇子恶迈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內(nèi)容