iOS第三方框架SDWebImage的使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaoxingaiwo/article/details/81611597

首先看下总体界面:

这里写图片描述

Appdelegate文件代码:

#import "AppDelegate.h"
#import "ViewController.h"
@interface AppDelegate ()

@end

@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    self.window=[[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];

    ViewController *mainVC=[[ViewController alloc]init];

    UINavigationController *nav=[[UINavigationController alloc]initWithRootViewController:mainVC];

    self.window.rootViewController=nav;

    [self.window makeKeyAndVisible];
    return YES;
}

模型文件代码

#import <Foundation/Foundation.h>

@interface BookModel : NSObject
@property(nonatomic,copy)NSString *mBookName;
@property(nonatomic,copy)NSString *mBookPrice;
@property(nonatomic,copy)NSString *mPublisher;
@property(nonatomic,copy)NSString *mImageURL;
@end

主界面的.h文件代码

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController<UITableViewDelegate,UITableViewDataSource>
{
    //声明数据视图
    UITableView *_tableView;
    //声明数据源对象
    NSMutableArray *_arrayData;
    //加载视图
    UIBarButtonItem *_btnLoadData;
    //编辑按钮
    UIBarButtonItem *_btnEdit;
}

@end

主界面.m文件代码:

#import "ViewController.h"
#import "AFNetworking.h"
#import "UIImageView+WebCache.h"
#import "BookModel.h"

#define SCHEIGHT ([UIScreen mainScreen].bounds.size.height)//高度
#define IS_IPHONE_X (SCHEIGHT == 812.0f) ? YES : NO
#define Height_NavContentBar 44.0f
#define Height_NavBar (IS_IPHONE_X==YES)?88.0:64.0f
#define Height_TabBar (IS_IPHONE_X==YES)?83.0:49.0f

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.title=@"SDWebImage的使用";
    self.automaticallyAdjustsScrollViewInsets=NO;
    _tableView=[[UITableView alloc]initWithFrame:CGRectMake(0, 64, self.view.frame.size.width, self.view.frame.size.height-64) style:UITableViewStylePlain];
    _tableView.dataSource=self;
    _tableView.delegate=self;
    //自动调节视图大小属性
    _tableView.autoresizingMask=UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;
    _tableView.backgroundColor=[UIColor redColor];
    [self.view addSubview:_tableView];

    _arrayData=[[NSMutableArray alloc]init];
    _btnLoadData=[[UIBarButtonItem alloc]initWithTitle:@"加载" style:UIBarButtonItemStylePlain target:self action:@selector(pressLoad)];
    self.navigationItem.rightBarButtonItem=_btnLoadData;
}
-(void)pressLoad
{
    [self loadDataFromNet];
}
-(void)loadDataFromNet
{
    AFHTTPSessionManager *session=[AFHTTPSessionManager manager];
    NSArray *arrG=[NSArray arrayWithObjects:@"iOS",@"Android",@"C++", nil];
    static int counter=0;
    counter++;
    if (counter>=3) {
        counter=0;
    }
    NSString *path=[NSString stringWithFormat:@"http://api.douban.com/book/subjects?q=%@&alt=json&apikey=01987f93c544bbfb04c97ebb4fce33f1",arrG[counter]];
    [session GET:path parameters:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        NSLog(@"下载成功!");
        if ([responseObject isKindOfClass:[NSDictionary class]]) {
            [self parseData:responseObject];
        }
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        NSLog(@"下载失败!");
    }];

}
-(void)parseData:(NSDictionary*)dicData
{
    NSArray *arrEntry=[dicData objectForKey:@"entry"];
    for (NSDictionary *dicBook in arrEntry) {
        NSDictionary *dicTitle=[dicData objectForKey:@"title"];
        NSString *strTitle=[dicTitle objectForKey:@"$t"];
        BookModel *bModel=[[BookModel alloc]init];
        //获取书籍的名字
        bModel.mBookName=strTitle;

        NSArray *arrLink=[dicBook objectForKey:@"link"];
        for (NSDictionary *dicLink in arrLink) {
            NSString *sValue=[dicLink objectForKey:@"@rel"];
            if ([sValue isEqualToString:@"image"]) {
                bModel.mImageURL=[dicLink objectForKey:@"@href"];
            }
        }
        [_arrayData addObject:bModel];
        [_tableView reloadData];
    }
}
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return _arrayData.count;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *strID=@"cell";
    UITableViewCell *cell=[_tableView dequeueReusableCellWithIdentifier:strID];
    if (cell==nil) {
        cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:strID];
    }
    BookModel *bModel=_arrayData[indexPath.row];
    cell.textLabel.text=bModel.mBookName;
    //使用SDWebImage加载网络图片
    [cell.imageView sd_setImageWithURL:[NSURL URLWithString:bModel.mImageURL] placeholderImage:[UIImage imageNamed:@"super_light_80"]];
    return  cell;
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 80;
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}


@end


注意:
这里写图片描述
最后附上代码地址:传送门

猜你喜欢

转载自blog.csdn.net/xiaoxingaiwo/article/details/81611597