IOS菜鸟的所感所思(十二)——专辑接口和专辑中歌曲数据的获得(下)

目标:用代码实现SearchAlbumVC控制器中cell,获得专辑信息。

步聚:1.storyboard中添加视图,并创建新的类SearchAlbumVC继承UITableViewController


说明:这是添加后的视图。
2.在 SearchAlbumVC.m文件中代码的实现。
   3.具体实现:
          a.先通过输入的信息获得网络接口中的数据。
b.重新加载视图。
c.控制器中cell的实现。(可以复用之前的CollectionCell)
    d.cell中会点击之后进入另一个视图(下一篇再说
SearchAlbumVC.m文件中:

//在输入框中输入信息点击查询按钮后调用方法


@interface SearchAlbumVC ()<UITableViewDelegate>

@property (weak, nonatomic) IBOutlet UITextField *searchContent;

@property (nonatomic, strong) NSArray *albumArray;



@end



@implementation SearchAlbumVC


- (IBAction)searchAlbum:(UIBarButtonItem *)sender {

    if (self.searchContent.text) {

        [selfgetAlbumData:self.searchContent.textpage:10];

    }

}

- (void)getAlbumData:(NSString *)searchContent page:(NSInteger)page{

    [FetchDataFromNetfetchAlbumData:searchContent page:page callback:^(NSArray *array,NSInteger page, NSError *error) {

       if (error) {

           NSLog(@"Error:%@",error);

        }else{

//本地定义的数组albumArray

           self.albumArray = array;

            //线程的先后获取数据的异步线程完成后再刷新界面

           dispatch_group_t group = dispatch_group_create();

            

            dispatch_group_notify(group,dispatch_get_main_queue(), ^{

                [self.tableViewreloadData];

            });

        }

    }];

}


说明:记得导入一下相应的头文件。

- (void)viewDidLoad {

    [super viewDidLoad];

//这两行代码作用相同,主要是去掉没有内容的表格

    //self.tableView.tableFooterView = [[UIView alloc] init];

    self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;


}


接下来就是cell的实现了:


#pragma mark - Table view data source


- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {

    return 1;

}

//cell的高度设置

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{

    return 50;

}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    return [self.albumArray count];

}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *cellIdentifier = @"albumCell";

    //复用CollectViewCell

    CollectViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

    if (cell == nil) {

        cell = [[[NSBundle mainBundle] loadNibNamed:@"CollectViewCell" owner:self options:nil] lastObject];

        self.tableView.tableFooterView = [[UIView alloc] init];

        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

    }

    //下面这个方法在CollectViewCell定义(当然是公有方法)

    [cell setAlbumInfo:self.albumArray[indexPath.row]];

    

    return cell;

}




CollectViewCell.m文件中:


- (void)setAlbumInfo:(AlbumData *)albumData{

//专辑名字和专辑的艺术家的名字

    self.songName.text = albumData.albumName;

    self.albumName.text = albumData.artist;

    //根据图片的url获取图片

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

        NSURL *imageUrl = [NSURL URLWithString:albumData.albumImage];

        

        dispatch_async(dispatch_get_main_queue(), ^{

            [self.imageLogo sd_setImageWithURL:imageUrl placeholderImage:[UIImage imageNamed:@"surf.jpg"]];

        });

        

    });

}

效果:

说明:该图片是经过了一些属性的修改,在下面一篇会介绍到。














评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值