今日、某アプリ開発においてつまづいたこと。
テーブルに画像とか、チェックとか付けているのだけれど、スクロールすると、あろうことか付ける予定もないような予想外の場所にチェックや画像がついてしまっていた。さらに、グリグリやるたびにそれは感染していく(汗
原因の解明には時間がかかったけど、解決方法は、簡単だった。
セルの個別IDをすべて同じにしていたために、スクロールするごとに、同じIDと見なされてしまったセルに、同じチェックや画像がついてしまったってことみたい。
なので以下のように、セルにIDを個別に持たせるよう適当にIDを振る。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *CellIdentifier = [NSString stringWithFormat:@"Cell%d-%d",indexPath.section,indexPath.row];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}
...cellの表示内容を記述...
return cell;
}