deselectRowAtIndexPath未被调用

时间:2011-12-01 21:19:43

标签: iphone uitableview

我在popover中有一个UITableview。我似乎无法取消选择动画或工作。复选标记保留在前一个选定的行上(复选标记是从我的Model类设置的,它只是一个NSDictionary,其中一个值是@“YES”,所有其他值都是@“NO。”当我关闭popover时,重新打开它,勾选标记是正确的,但是当弹出窗口打开时我似乎无法得到它。想法?谢谢。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
     NSUInteger row = [indexPath row];
        UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
        cell.accessoryType = UITableViewCellAccessoryCheckmark;
//        [cell setSelected:YES animated:YES];   
        [tableView deselectRowAtIndexPath:indexPath animated:YES];
}

1 个答案:

答案 0 :(得分:1)

deselectRowAtIndexPath不会删除UITableViewCell的accessoryView,它会删除UITableViewCell的突出显示(蓝色)背景。以下代码设置单元格的复选标记:

cell.accessoryType = UITableViewCellAccessoryCheckmark;

要从该单元格中删除复选标记,您必须执行以下操作:

cell.accessoryType = UITableViewCellAccessoryNone;