目标:用代码实现SearchAlbumVC控制器中cell,获得专辑信息。
//在输入框中输入信息点击查询按钮后调用方法
@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;
}
#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"]];
});
});
}
效果: