在我的应用程序中,我有一个详细视图,用户可以在其中编辑例如某人的姓名,地址等属性。UITableViewCell配件重复?
在两个单元格中,他们不能选择它们来编辑其内容,有一个正确的附件,一个UISwitch,但有时它不一致,但它们在我最后一节中复制到其他单元格上。
我一直在用精梳机扫描我的代码几十遍,并找不到该死的原因。什么可能导致这个?下面是我使用的只是一个单细胞创建UISwitch代码:
if (indexPath.section == 0 && indexPath.row == 1)
{
cell.textLabel.text = @"Confirmed";
//Make the cell unselectable
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
//Create and add uiswitch
confirmedSwitch = [[UISwitch alloc] initWithFrame:CGRectZero];
[confirmedSwitch addTarget:self action:@selector(switchConfirmedStatus:) forControlEvents:UIControlEventValueChanged];
[confirmedSwitch setOn:[venue.isConfirmed boolValue]];
cell.accessoryView = confirmedSwitch;
}
所以你指望它只能出现在该小区,看到什么奇怪与该代码?我检查了我的if语句,并且我所有的括号indexPath检查都是正确的。
任何人看到此之前或有任何线索?
听起来像一个细胞重复使用问题。当你调用'dequeueReusableCellWithIdentifier:'你得到一个循环的单元格 - (你可能已经添加了这个单元格的开关)。你需要做什么删除你回收单元格时添加的视图 – 2012-04-07 00:35:36
这个代码是否在cellForRowAtIndexPath中?你使用单个可重用的单元标识符吗?如果是这样,如果你得到一个缓存单元格,并且*不匹配你的分区/行测试,你会怎么做? – 2012-04-07 00:35:57
啊,我想这个线索的名字是'Reuse'!我正在使用这个,所以只需将我的其他单元的附件视图修改为零即可!猜猜我想的太多了,以为它背后可能会有更大的问题。 – 2012-04-07 00:38:54