你好,歡迎來到IOS教程網

 Ios教程網 >> IOS訊息 >> 關於IOS >> iOS MJRefresh下拉刷新 上拉加載(可添加gif圖版) 小結

iOS MJRefresh下拉刷新 上拉加載(可添加gif圖版) 小結

編輯:關於IOS

1.首先去github上下載最新版 MJ刷新庫 下載MJ鏈接

 

 

2.tableVIew中加入相關代碼

_tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, MCAPPWidth, MCAPPHeight - 64)];

_tableView.backgroundColor = myClearColor;

_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

_tableView.delegate = self;

_tableView.dataSource = self;

_tableView.showsVerticalScrollIndicator = NO;

_tableView.scrollsToTop = YES;

[self.view addSubview:_tableView];

[_tableView addGifHeaderWithRefreshingTarget:self refreshingAction:@selector(loadData)];

[_tableView addGifFooterWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];

[self gif];

 

//loadData 為你下拉刷新時請求網絡數據的方法 loadMoreData為你上拉加載時請求網絡數據的方法

 

 

3. [self gif]

 

- (void)gif

{

NSMutableArray *idleImages = [NSMutableArray array];

//這塊為你刷新時出現的gif圖 需要循環添加到數組中

for (NSUInteger i = 1; i <= 5; i++) {

UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@img_loading-%lu.png, (unsigned long)i]];

[idleImages addObject:image];

}

[_tableView.gifHeader setImages:idleImages forState:MJRefreshHeaderStateIdle];

_tableView.gifFooter.refreshingImages = idleImages;

_tableView.gifHeader.updatedTimeHidden = YES;

// 設置即將刷新狀態的動畫圖片(一松開就會刷新的狀態)

NSMutableArray *refreshingImages = [NSMutableArray array];

for (NSUInteger i = 1; i <= 5; i++) {

UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@img_loading-%lu.png, (unsigned long)i]];

[refreshingImages addObject:image];

}

[_tableView.gifHeader setImages:refreshingImages forState:MJRefreshHeaderStatePulling];

}

 

 

4. 自定義刷新時頂部底部出現的Label和gif圖的frame 這裡舉footer的例子

MJRefreshGifFooter.m

- (void)layoutSubviews

{

[super layoutSubviews];

// 指示器 gif圖的frame

self.gifView.frame = CGRectMake(self.bounds.origin.x + 20, self.bounds.origin.y + 15, self.bounds.size.width / 2, self.bounds.size.height / 2);

 

if (self.stateHidden) {

self.gifView.contentMode = UIViewContentModeCenter;

} else {

self.gifView.contentMode = UIViewContentModeScaleAspectFit;

self.gifView.mj_w = self.mj_w * 0.5 - 90;

}

}

MJRefreshFooter.m

- (void)layoutSubviews

{

[super layoutSubviews];

self.loadMoreButton.frame = self.bounds;

self.loadMoreButton.hidden = YES;

//Label的frame

self.stateLabel.frame = CGRectMake(self.bounds.origin.x, self.bounds.origin.y + 15, self.bounds.size.width, self.bounds.size.height / 2);

self.noMoreLabel.frame = self.bounds;

}

 

同理header的gif圖frame 和Labelframe 都在相應的類裡的方法裡 都可以根據需求去修改

 

更多的設置可以看下MJ在github上相關的文檔。

 

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved