MJRefresh的使用

image

MJRefresh 是一個優(yōu)秀的下拉刷新組件。
github 地址

//
//  ViewController.m
//  mjtable
//
//  Created by ldhonline on 2018/10/26.
//  Copyright ? 2018年 aidoutu.com. All rights reserved.
//

#import "ViewController.h"
#import "Masonry.h"
#import "MJRefresh.h"
#import "MASConstraint+Hidden.h"
#import "UIView+MasonryHidden.h"
#import "Color+Utils.h"

@interface ViewController ()<UITableViewDataSource, UITableViewDelegate>

@end

@implementation ViewController
{
    UITableView *_table;
    NSUInteger count;
    NSArray *data;
}
- (void)viewDidLoad {
    [super viewDidLoad];
    count = 0;
    data = @[];
    _table = [[UITableView alloc] initWithFrame:CGRectMake(0, 64, 400, 400) style:UITableViewStylePlain];
    _table.delegate = self;
    _table.dataSource = self;
    [self.view addSubview:_table];
    
    UIImageView *img = [[UIImageView alloc] init];
    
    img.image = [UIImage imageNamed:@"r"];
    img.contentMode = UIViewContentModeScaleAspectFit;
    
    img.frame = CGRectMake(0,-50, 400, 50);
    
    [_table addSubview:img];
    
    // 加入內(nèi)部 padding
    _table.contentInset = UIEdgeInsetsMake(50, 0, 0, 0);
    
    
   // [_table reloadData];
    
    
    MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
        [self performSelector:@selector(loadTableViewFirstPage) withObject:nil afterDelay:0.5];
    }];
    
    // 當table 上面插入了其它元素時慢哈,忽略多少 paddingTop
    header.ignoredScrollViewContentInsetTop = 50;
    
    // auto 模式會自動跟在最后的元素后面
    MJRefreshAutoNormalFooter *footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
        [self performSelector:@selector(loadTableViewNextPage) withObject:nil afterDelay:0.5];
    }];
    
    footer.hidden = YES;// 開始是隱藏的
    footer.onlyRefreshPerDrag = YES; // 多次拉取也只加載一次
    footer.triggerAutomaticallyRefreshPercent = -20;// 離 bottom 多遠的時候就觸發(fā)
    [footer setTitle:@"下拉查看更多的評論" forState:MJRefreshStateIdle];
    [footer setTitle:@"正在瘋狂加載 ..." forState:MJRefreshStateRefreshing];
    [footer setTitle:@"我也是有底線" forState:MJRefreshStateNoMoreData];
    
    _table.mj_header = header;
    _table.mj_footer = footer;
    
    [self loadTableViewFirstPage];
}

-(void)mj_firstPageDidLoad{
    [_table.mj_header endRefreshing];
    // 只要有數(shù)據(jù)椭懊,就顯示加載更多, 沒有數(shù)據(jù)隱藏控件对粪,不能再上拉
    _table.mj_footer.hidden = [data count] == 0;
    // 不足一屏的時候顯示沒有更多了,也不能上拉
    if([data count] < 5){
        [_table.mj_footer endRefreshingWithNoMoreData];
    }else{
        [_table.mj_footer resetNoMoreData];
    }
    [_table reloadData];
}

-(void)mj_nextPageDidLoad{
    // 加載一頁后回到等待上拉狀態(tài)
    [_table.mj_footer endRefreshing];
    [_table reloadData];
}

-(void)mj_allPageDidLoad{
    // 沒有更多數(shù)據(jù)時,回到不能上拉狀態(tài)
    [_table.mj_footer endRefreshingWithNoMoreData];
    [_table reloadData];
}

- (void)loadTableViewFirstPage{
    data = [self getArrWithCount:5];
    [self mj_firstPageDidLoad];
}

- (void)loadTableViewNextPage{
    data = [data arrayByAddingObjectsFromArray:[self getArrWithCount:5]];
    if([data count] >= 45){
        [self mj_allPageDidLoad];
    }else{
        [self mj_nextPageDidLoad];
    }
}

- (NSArray *)getArrWithCount:(NSUInteger)count{
    NSMutableArray *ret = [NSMutableArray array];
    for (int i = 0; i < count; i++) {
        [ret addObject: randColor];
    }
    return ret;
}

#pragma mark - UITableViewDataSource

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [data count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [UITableViewCell new];
    cell.textLabel.text = @"ok, is google";
    cell.backgroundColor = data[indexPath.row];
    return cell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    
}

#pragma mark - UITableViewDelegate

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 50;
}


@end


最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末秆剪,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子爵政,更是在濱河造成了極大的恐慌仅讽,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钾挟,死亡現(xiàn)場離奇詭異洁灵,居然都是意外死亡,警方通過查閱死者的電腦和手機掺出,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門徽千,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人汤锨,你說我怎么就攤上這事双抽。” “怎么了闲礼?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵牍汹,是天一觀的道長。 經(jīng)常有香客問我柬泽,道長慎菲,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任锨并,我火速辦了婚禮露该,結果婚禮上,老公的妹妹穿的比我還像新娘第煮。我一直安慰自己解幼,他們只是感情好,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布包警。 她就那樣靜靜地躺著撵摆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪揽趾。 梳的紋絲不亂的頭發(fā)上台汇,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天,我揣著相機與錄音,去河邊找鬼苟呐。 笑死痒芝,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的牵素。 我是一名探鬼主播严衬,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼笆呆!你這毒婦竟也來了请琳?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤赠幕,失蹤者是張志新(化名)和其女友劉穎俄精,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體榕堰,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡竖慧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了逆屡。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片圾旨。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖魏蔗,靈堂內(nèi)的尸體忽然破棺而出砍的,到底是詐尸還是另有隱情,我是刑警寧澤莺治,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布廓鞠,位于F島的核電站,受9級特大地震影響产雹,放射性物質發(fā)生泄漏诫惭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一蔓挖、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧馆衔,春花似錦瘟判、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至减细,卻和暖如春匆瓜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工驮吱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留茧妒,地道東北人。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓左冬,卻偏偏與公主長得像桐筏,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子拇砰,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

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

  • 1梅忌、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明先生_X自主閱讀 15,969評論 3 119
  • 這段時間狀態(tài)不佳,我覺得自己有輕度抑郁癥除破。有些心事難以啟齒牧氮,可能放在心上所以把心給難受了。 今天去給朋友送茶葉瑰枫,沒...
    倪詩淇閱讀 227評論 0 0
  • 走出那家店,思來想去我應該為自己的行為說句對不起教馆。 今天逊谋,自己的行為讓自己認識到自己的粗俗和不禮貌 和好朋友一起逛...
    未姑娘啊閱讀 253評論 0 0
  • 第80個孩子的教育故事 “挑戰(zhàn)不可能” 德國教育家斯普朗格說:“教育的最終目的不是傳授已有的東西,而是要把人的創(chuàng)造...
    紅點子閱讀 271評論 0 1
  • 休相知土铺,莫相念胶滋, 相見心難平。 往事憶心頭悲敷,陌路有無期究恤, 深夜風蕭蕭,臨別情已深后德。 云合明月閉部宿,默然泣無聲。 ——致拙
    手握瓷杯閱讀 182評論 1 2