在我的應用程序中,我有一個詳細視圖,用戶可以在其中編輯例如某人的姓名,地址等屬性。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