我在nsurlconnection
方法中使用了POST
并为&#34创建了四个数组;请参阅","购买","已更新","图像"。显示在tableviewcell
但是"图像"没有显示。图像在" url中以png格式"。
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSError* error;
json = [NSJSONSerialization JSONObjectWithData: mutableData
options:kNilOptions
error:&error];
NSLog(@"%@",json);
sellArray = [json valueForKeyPath:@"BranchByList.sell"];
buyArray = [json valueForKeyPath:@"BranchByList.buy"];
updataedArray = [json valueForKeyPath:@"BranchByList.updated"];
imageArray = [json valueForKeyPath:@"BranchByList.flag_image"];
[_datad reloadData];
}
tableview委托方法是:
-(NSInteger)numberOfSectionsInTableView:(UITableView *) tableView{
return 1;
}
-(NSInteger)tableView:(UITableView *) tableView numberOfRowsInSection:(NSInteger)section{
return [sellArray count];
return [buyArray count];
return [updataedArray count];
return [imageArray count];
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
TableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:@"path" forIndexPath:indexPath];
cell.sellbl.text=[sellArray objectAtIndex:indexPath.row];
cell.buylbl.text=[buyArray objectAtIndex:indexPath.row];
cell.updatedlbl.text = [updataedArray objectAtIndex:indexPath.row];
cell.imglbl.image = [UIImage imageNamed:[imageArray objectAtIndex:indexPath.row]];
return cell;
}
-(void)tableView: (UITableView *) tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath{
}
答案 0 :(得分:1)
您正在直接为图片分配网址!这根本行不通。 您需要先将网址添加到NSUrl,然后使用NSData将网址转换为数据,然后将数据分配给图像。
要完成它,请在代码中添加以下代码行:
NSURL *url = [NSURL URLWithString:[imageArray objectAtIndex:indexPath.row]];
NSData *data = [NSData dataWithContentsOfURL:url];
cell.imglbl.image = [UIImage imageWithData:data];
我发布了一个更多理解的例子。我有一个网址,我需要将该网址中的图像显示到我的设备上。对于那个m使用下面的代码行:
NSURL *url = [NSURL URLWithString:@"http://1.bp.blogspot.com/-9yd6LPL2N6U/VatsUdMffPI/AAAAAAAAAl4/Pq1S6Q20fy0/s1600/hello_world.gif"];
NSData *data = [NSData dataWithContentsOfURL:url];
_imgView.image=[UIImage imageWithData:data];
以上网址只是从谷歌拍摄的图片的随机网址。
结果:
答案 1 :(得分:0)
您正在调用图片,
cell.imglbl.image = [UIImage imageNamed:[imageArray objectAtIndex:indexPath.row]];
如果您的项目中有图像,那就没问题,否则您需要从网址下载它,例如,
NSData *data = [NSData dataWithContentsOfURL:@"you url"];
UIImage *img = [UIImage imageWithData:data];
cell.imglbl.image = img;
或者您可以使用SDWebImage,更新第三方库来缓存图像。
希望这会有所帮助:)
答案 2 :(得分:0)
并使用此代码
[cell.imglbl setImageWithURL:[NSURL URLWithString:[imageArray objectAtIndex:indexPath.row]]
placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
而不是
cell.imglbl.image = [UIImage imageNamed:[imageArray objectAtIndex:indexPath.row]];
return cell;
答案 3 :(得分:0)
好像你没有将图像设置为cell.imglbl.image,而是它的网址。
cell.imglbl.image = [UIImage imageNamed:[imageArray objectAtIndex:indexPath.row]];
您可以使用某些第三方库(如SDWebImage)来异步下载图像。 https://github.com/rs/SDWebImage
(或者像这样下载它同步
NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:imageURL]];
UIImage *image = [UIImage imageWithData:data];
)
另外我建议您使用词典来保存已下载的图像,其中的键将是单元格的索引路径。
希望有所帮助:)