2
我在更新UITableView
中的行時遇到問題。在我的tableView
中,只能選擇一行中的一行(可能有幾個部分)。所以,當用戶選擇行時,我以編程方式取消選擇本節中的其他行。當取消選中的行可見時,一切正常。如果任何取消選擇的行不可見,那麼它仍然被檢查。但didDeselectRowAtIndexPath
被稱爲此行。爲什麼?如何解決這個問題?取消選擇不可見行
- (NSIndexPath*)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath*)indexPath
{
// It is predefined group - only one row in section cab be selected
// Deselect other rows in section
for (NSIndexPath * selectedIndexPath in tagTableView.indexPathsForSelectedRows) {
if (selectedIndexPath.section == indexPath.section) {
[self tableView:tableView didDeselectRowAtIndexPath:selectedIndexPath];
[tableView deselectRowAtIndexPath:selectedIndexPath animated:YES];
}
}
return indexPath;
}
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tagTableView cellForRowAtIndexPath:indexPath].accessoryType = UITableViewCellAccessoryNone;
}
如果選中的行不可見,則無法取消選擇,UIKit中存在一個錯誤。然後它卡住了。 – Andy