1

私のクラスにはテーブルビューがあります。選択したインデックスに基づいて、TableView行をリロードしています

-(void)viewWillAppear:(BOOL)animated{

   [super viewWillAppear:YES];

    [self.stopsTable reloadRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath  

   indexPathForRow:rowNum inSection:0]] withRowAnimation:UITableViewRowAnimationFade];


}

rowNum は次のように設定されます:rowNum = indexPath.row

これに基づいて、特定のセルの非表示の画像を表示します。これは正常に動作します。しかし

テーブルビューを手動でスクロールすると(つまり、セルがビューまたは可視性から外れると)、値が原因でセルの非表示の画像が消えます

rowNum は失われます。これについて何か助けはありますか?

4

2 に答える 2

0

これは、セルが表示されなくなったときにcellForRowAtIndexPath:再び呼び出され、そのときに新しいセルが作成されるか、既存のセルが使用されるために発生しました。cellIndentifier

したがって、使用するセルの数が少ない場合は、セルごとに異なるcellIdentifiersを割り当てることができます。そうすれば、セルが見えなくなっても、同じセルのままになります。

あなたは次のようにこれを行うことができます:でcellForRowAtIndexPath:

 NSString *str = [NSString StringWithFormat:@"cell%d",indexpath.row];

 cell = [UITableView dequeReusableCellWithCellIdentifier:str];

 if(cell == nil)
 {
  cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault  reuseIdentifier:str];
 }

 return cell ;

これは間違いなく機能します!!!

于 2013-03-13T17:34:21.213 に答える