如何自动取消选择tableview单元格

时间:2013-10-21 07:29:45

标签: ios uitableview

我有一个表格视图

当我点击单元格时一切都很好

但是,当我从手机上取下手指时,手机会保持选中状态

当用户停止触摸给定的单元格而不触及另一个单元格时,如何取消选择

6 个答案:

答案 0 :(得分:1)

简单:

在此方法中:didSelectRowAtIndexPath

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

    [tableView deselectRowAtIndexPath:indexPath animated:YES];

  }

答案 1 :(得分:0)

您必须在cellForRowAtIndexPath中设置样式或更改willSelectRowAtIndexPath中的单元格,然后在didSelectRowAtIndexPath中更改。 例如

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    // ...
    cell.selectionStyle = UITableViewCellSelectionStyleBlue; // or an other style
    // ...
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    // ...
    [tableView deselectRowAtIndexPath:indexPath animated:NO];
    // ...
}

答案 2 :(得分:0)

将以下内容放在UITableView委托中。

   -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
        UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
        [cell setSelected:NO animated:YES];
    }

答案 3 :(得分:0)

您是否考虑过处理触摸事件?

例如:添加UITapGestureRecognizer,使用-(CGPoint)locationInView:(UIView *)view方法检测正在触摸的单元格。触摸开始时将单元格标记为已选中,并在触摸结束时标记为已取消选择。

答案 4 :(得分:0)

您是否已将委托分配给UITableView?

self.tableView.delegate = self;

这就是你遇到这个的原因

  

这不起作用 - 单元格没有显示存在的迹象   选择

答案 5 :(得分:0)

tableView:didSelectRowAtIndexPath:中,使用NO方法将单元格的selected属性设置为setSelected:animated:

E.g。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell * cell = [tableView cellForRowAtIndexPath:indexPath];
    [cell setSelected:NO animated:YES];
}

注意:

使用上述方法设置单元格的selected属性= NO和animated = YES将导致分隔符消失。我发现绕过这个的唯一方法是设置动画=否,但是,如果我找到另一种方式,我会更新我的答案。