0

セルに画像を表示したいのですが、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"
    }
}
4

2 に答える 2

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;
  }

あなたのデータによると、それは最良の答えではないかもしれませんが、あなたがそれを適応できるようにあなたにアイデアを与えるだけです.

于 2013-05-31T11:27:30.507 に答える