MJMJRefresh、SDWebImage
1.佈局
繼承於UITableViewCell
拖拽控制元件
2.
#import "ViewController.h"
#import "myTableViewCell.h"
#import "UIImageView+WebCache.h"
#import "MJRefresh.h"
#import "MJRefreshFooter.h"
#import "MJRefreshAutoFooter.h"
#import "MJRefreshHeader.h"
#import "MBProgressHUD.h"
@interface ViewController ()
{
UITableView *tbv;
NSMutableDictionary *dic;
NSArray *arr;
int i;
}
@ end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// 建立表格
tbv = [[UITableView alloc]initWithFrame:[UIScreen mainScreen].bounds style:UITableViewStylePlain];
// 設定行高
tbv.rowHeight = 200;
// 設定資料來源和代理
tbv.delegate=self;
tbv.dataSource = self;
// 新增到主介面
[self.view addSubview: tbv];
NSURLSession *session = [NSURLSession sharedSession];
NSString *filePath = @"https://way.jd.com/jisuapi/get?channel=頭條&num=10&start=0&appkey=54e619938bc38b40151c7bc35a29067e";
NSString *str1 = [filePath stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURLSessionDataTask*task = [sessiondataTaskWithURL:[NSURLURLWithString:str1]completionHandler:^(NSData*_Nullabledata,NSURLResponse*_Nullableresponse,NSError*_Nullableerror) {
// JSON解析
dic = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
dispatch_async(dispatch_get_main_queue(), ^{
// 重新整理表格
[tbv reloadData];
});
}];
// 開始請求
[task resume];
// 使用MJRefresh,實現下拉重新載入資料的功能
MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(header)];
// [header setTitle:@"正在努力載入中! ! !" forState:MJRefreshStateRefreshing];
tbv.mj_header= header;
// 使用MJRefresh,實現上拉載入更多資料的功能
MJRefreshBackFooter *footer = [MJRefreshBackFooter footerWithRefreshingTarget:self refreshingAction:@selector(footer)];
tbv.mj_footer= footer;
}
- (void) GetNetWorking{
NSURLSession *session = [NSURLSession sharedSession];
NSString *str3 = [NSString stringWithFormat:@"https://way.jd.com/jisuapi/get?channel=頭條&num=10&start=%d&appkey=54e619938bc38b40151c7bc35a29067e",i];
NSString *str1 = [str3 stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURLSessionDataTask*task = [sessiondataTaskWithURL:[NSURLURLWithString:str1]completionHandler:^(NSData*_Nullabledata,NSURLResponse*_Nullableresponse,NSError*_Nullableerror) {
// JSON解析
dic = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
dispatch_async(dispatch_get_main_queue(), ^{
// 重新整理表格
[tbvreloadData];
});
}];
// 開始請求
[taskresume];
}
// 實現下拉重新整理的方法
- (void) header{
MBProgressHUD *progress = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
// 每次開始傳送請求時,都使用MBBrogressHUD顯示Loading視窗
[progresssetMinShowTime:2];
// 請求完畢後關閉MBBrogressHUD的載入效果
[progresshide:YES];
i = 0;
[self GetNetWorking];
//
[tbv.mj_header endRefreshing];
//
}
// 實現上拉重新整理的方法
- (void) footer{
i = i + 1;
[self GetNetWorking];
[tbv.mj_footer endRefreshing];
}
// 實現資料來源方法
// 幾組
-(NSInteger)numberOfSectionsInTableView:(UITableView*)tableView{
return 1;
}
// 幾行
-(NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section{
arr = dic[@"result"][@"result"][@"list"];
returnarr.count;
}
// 設定cell內容
-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{
staticNSString*str =@"cell";
myTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:str];
if(!cell) {
cell = [[[NSBundle mainBundle]loadNibNamed:@"myTableViewCell" owner:self options:nil]firstObject];
}
// 將解析到的標題和時間顯示到UITableView上
NSDictionary*dic1 =arr[indexPath.row];
cell.title.text= dic1[@"title"];
// 自動換行
cell.title.numberOfLines=0;
// 新增時間
cell.time.text= dic1[@"time"];
// 時間居中
cell.time.textAlignment = NSTextAlignmentCenter;
// 請求資料後,提示使用者資料請求成功或失敗
cell.succ.text=dic[@"msg"];
// 使用SDWebImage,將圖片顯示到UITableView上
NSString*str2 = dic1[@"pic"];
NSURL*url = [NSURLURLWithString:str2];
[cell.imgV sd_setImageWithURL:url];
returncell;
}
@ end
相關文章
- SDWebimage(1)Web
- 圖解SDWebImage圖解Web
- SDWebImage 筆記Web筆記
- SDWebImage中文說明Web
- iOS SDWebImage 學習iOSWeb
- SDWebImage 原始碼分析Web原始碼
- SDWebImage原始碼解析Web原始碼
- SDWebImage 原始碼解析Web原始碼
- SDWebImage 的詳解Web
- SDWebImage原理小結Web
- SDWebImage原始碼剖析(-)Web原始碼
- SDWebImage清除快取Web快取
- SDWebImage的快取策略Web快取
- SDWebImage原始碼解讀Web原始碼
- SDWebImage Source Probe: DownloaderWeb
- SDWebImage原始碼解析(三)Web原始碼
- SDWebImage原始碼解析(四)Web原始碼
- SDWebImage原始碼剖析(二)Web原始碼
- iOS開發框架--SDWebImageiOS框架Web
- SDWebImage原始碼閱讀(上)Web原始碼
- SDWebImage使用及原始碼分析Web原始碼
- 最新版SDWebImage的使用Web
- 2016筆記——SDWebImage筆記Web
- 原始碼閱讀:SDWebImage(十一)——SDImageCache原始碼Web
- 原始碼閱讀:SDWebImage(五)——SDWebImageFrame原始碼Web
- YYWebImage,SDWebImage和PINRemoteImage比較WebREM
- SDWebImage 快取機制(筆記)Web快取筆記
- IOS SDWebImage實現原理詳解iOSWeb
- 原始碼閱讀:SDWebImage(十六)——SDWebImageTransition原始碼Web
- 原始碼閱讀:SDWebImage(十四)——SDWebImageManager原始碼Web
- ios SDWebImage新增頭部引數iOSWeb
- CocoaPods安裝和使用(SDWebImage)Web
- SDWebImage內部實現過程Web
- 仿SDWebImage多圖片下載Web
- SDWebImage(v3.7.6) 原始碼學習Web原始碼
- 原始碼閱讀:SDWebImage(八)——SDWebImageGIFCoder原始碼Web
- 原始碼閱讀:SDWebImage(九)——SDWebImageCodersManager原始碼Web
- 原始碼閱讀:SDWebImage(六)——SDWebImageCoderHelper原始碼Web