我想在单元格中显示图像,但前提是JSON
数据的值为1(只能为0或1)
也许如果JSON
数据的值为0,则显示不同的图像,因此每个单元格可以显示2个不同的图像
到目前为止的问题是单元格包含图像,而不是JSON
数据的值。
代码:
NSArray *arrayOfEntry = [allDataDictionary objectForKey:@"notities"];
for (NSDictionary *diction in arrayOfEntry)
{
sonResults = [allDataDictionary objectForKey:@"notities"];
NSMutableString *checkvink = [diction objectForKey:@"not_verwerkt"];
if(![checkvink isEqual: @"1"])
{
NSString *path = [[NSBundle mainBundle] pathForResource:@"vink" ofType:@"png"];
imageData = [NSData dataWithData:[NSData dataWithContentsOfFile:path]];
}
}
然后我会像这样显示图像
UIImage *imageLoad = [[UIImage alloc] initWithData:imageData];
cell.notAfbeel.image = imageLoad;
我做错了什么?
编辑:完成cellForRowAtIndexPath
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *Cellidentifier = @"Cell";
NotitieCell *cell = [tableView dequeueReusableCellWithIdentifier:Cellidentifier];
if(!cell)
{
cell = [[NotitieCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:Cellidentifier];
}
NSDictionary *appsdict = [jsonResults objectAtIndex:indexPath.row];
UIImage *imageLoad = [[UIImage alloc] initWithData:imageData];
cell.notAfbeel.image = imageLoad;
return cell;
}
JSON数据
{
"notities": [{
"not_nr": "1191555",
"not_tijd": "12:29:54",
"not_type": "0",
"not_behandeld": "Richard",
"not_bestemd": "Richard",
"not_contactpers": "Maarten",
"not_prioriteit": "1",
"not_onderwerp": "Printer staat er nog steeds in",
"not_naam": "apple store",
"not_woonpl": "Amsterdam",
"not_land": "NL",
"not_verwerkt": "0"
}
}
答案 0 :(得分:0)
也许您应该使用isEqualToString
而不是isEqual
,因为您要在行上比较NSString值:
if(![checkvink isEqualToString: @"1"])
答案 1 :(得分:0)
问题是imageData
是一个实例变量。您正在为整个对象实例设置其值,而不仅仅是单元格。所以,她调用了cellForRowAtIndexPath
,它将这个变量值放在所有单元格中。
转换属性中的arrayOfEntry
并假设它完全显示在tableView上,我们可以像这样重写cellForRowAtIndexPath
:
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *Cellidentifier = @"Cell";
NotitieCell *cell = [tableView dequeueReusableCellWithIdentifier:Cellidentifier];
if(!cell)
{
cell = [[NotitieCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:Cellidentifier];
}
NSDictionary *appsdict = [jsonResults objectAtIndex:indexPath.row];
NSMutableString *checkvink = [[self.arrayOfEntry objectAtIndex:indexPath.row] objectForKey:@"not_verwerkt"];
NSData *imageData = nil; // local, now
if(![checkvink isEqualToString: @"1"])
{
NSString *path = [[NSBundle mainBundle] pathForResource:@"vink" ofType:@"png"];
imageData = [NSData dataWithData:[NSData dataWithContentsOfFile:path]];
}
UIImage *imageLoad = [[UIImage alloc] initWithData:imageData];
cell.notAfbeel.image = imageLoad;
return cell;
}
根据您的数据,这可能不是最佳答案,但只是为了给您一个想法,以便您可以对其进行调整。