在不可删除的行上滑动后取消选择单元格

时间:2014-01-07 09:58:12

标签: ios objective-c uitableview

我有TableView三个部分。可以删除第一部分和第二部分(使用滑动删除) 第三节不能。我现在的问题是,当我在第三部分中刷一个单元格时,它会被选中。我尝试在调用“canEditRowAtIndexPath”时取消选择(并且它实际上被调用),但这不起作用并且单元格保持选中状态。我的“canEditRowAtIndexPath”看起来像这样:

-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
    [self.tableView deselectRowAtIndexPath:indexPath animated:NO];

    if (indexPath.section == 2)
    {
        return NO;
    }
    return YES;
}

5 个答案:

答案 0 :(得分:2)

我发现(在我的观察中)这个问题的更好解决方案

ops.tuple.Mapper

我希望有帮助!! 此致

答案 1 :(得分:1)

您可以使用-(UITableViewCell *) tableView:(UITableView *) tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

检查并关闭tableViewCell.selectionStyle = UITableViewCellSelectionStyleNone;中的第3个部分单元格选择

答案 2 :(得分:0)

您应该在此方法中调用[self.tableView deselectRowAtIndexPath:indexPath animated:NO]; -

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

或者在 -

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 设置选择样式无。 cell.selectionStyle = UITableViewCellSelectionStyleNone;

答案 3 :(得分:0)

使用此UITableView

的委托方法
 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

答案 4 :(得分:0)

我找到了一个很好的解决方法。 在单元格上滑动会强制应用调用viewWillAppear。 将[self.tableView reloadData];添加到该方法中,将删除所选状态。