2013-10-28 164 views
0

標題說明了這一點,我認爲這幾乎是一件容易的事,但我找不到答案。 我認爲代碼描述了我嘗試做的事情。UITableViewCell didSelectRowAtIndexPath。當我選擇一個新單元格時,取消選擇「未選定」單元格

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

NSLog(@"Selected Row"); 
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
static NSString *CellIdentifier = @"accountCell"; 
UITableViewCell *allCells = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
allCells.accessoryType = UITableViewCellAccessoryNone; 
cell.accessoryType = UITableViewCellAccessoryCheckmark; 
[tableView deselectRowAtIndexPath:indexPath animated:YES]; 
} 

所以 - 首先應該所有的單元格都沒有複選標記,然後我想添加一個複選標記到選定的複選標記。

+0

我不在我的工作計算機上,但如何重新加載willSelectRowAtIndexPath中的所有表數據,然後將附件提供給將要選擇的單元格? –

回答

1

每次調用didSelectRowAtIndexPath方法時,都要經過一個for循環,將所有單元復位爲其原始附件類型。然後用一個複選標記更新與所選擇的索引路徑的單元像這樣:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    for (UITableViewCell *cell in[self.tableView visibleCells]) { 
     cell.accessoryType = UITableViewCellAccessoryNone; 
    } 
[tableView cellForRowAtIndexPath:indexPath].accessoryType = UITableViewCellAccessoryCheckmark; 

} 
0

爲可能的解決方案見here。您不需要遍歷所有單元格

相關問題