したがって、私は自分のUITableViewに多くのセルを持ち、セルに触れると、見えなくなった追加のセルにもダニが適用されます。複数のUITableViewCellAccessoryCheckmarkを単一のUITableCellタッチで適用する問題
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
if (cell.accessoryType == UITableViewCellAccessoryNone){
[addPapersSelectedRowsArray addObject:[NSNumber numberWithInt:indexPath.row]];
[cell setAccessoryType:UITableViewCellAccessoryCheckmark];
}
else if (cell.accessoryType == UITableViewCellAccessoryCheckmark){
cell.accessoryType = UITableViewCellAccessoryNone;
[addPapersSelectedRowsArray removeObject:[NSNumber numberWithInt:indexPath.row]];
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
NSDictionary *currentPapersSecltion = [papersDataDictionary objectAtIndex:indexPath.row];
[[cell textLabel] setText:[currentPapersSecltion objectForKey:@"Title"]];
return cell;
}
はまたviewDidLoad
内の.plistからデータを引っ張っ::
//Load papers data from the local plist
papersDataDictionary = [[[NSDictionary alloc] initWithContentsOfFile:[[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"papers.plist"]] objectForKey:@"Rows"];
誰もが知っています私は、細胞が原因dequeueReusableCellWithIdentifier:
に再利用するか何かされているため、これはHERESに私のコードであると考えていこれを修正する方法は? ありがとうございました!あなたはセルが選択されているか否かに応じて、あなたのチェックマークを設定する必要がcellForRowAtIndexPathで
デックス
cellForRowAtIndexPathデータソースメソッドのコード – 0x8badf00d
@ 0x8badf00dが追加されました! – DexCurl
あなたのcell.accessoryTypeはどこですか= UITableViewCellAccessoryNone;あなたのcellForRowAtIndexPathメソッドで? @samfisherの回答に従ってデリゲートメソッドを変更します。 – 0x8badf00d