0

我有一个表格视图

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

但是,当我将手指从手机上移开时,单元格仍处于选中状态

当用户停止触摸给定单元格并且不触摸另一个单元格时,如何使其取消选中

4

6 回答 6

1

简单的 :

在这种方法中:didSelectRowAtIndexPath

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

    [tableView deselectRowAtIndexPath:indexPath animated:YES];

  }
于 2013-10-21T07:34:01.787 回答
0

Have you considered to handle the touch events?

For example: Add a UITapGestureRecognizer, detect which cell is being touched by using the -(CGPoint)locationInView:(UIView *)view method. Mark the cell as selected when the touch begins and mark as deselected when the touch ends.

于 2013-10-21T12:51:42.643 回答
0

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

例如

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

笔记:

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

于 2014-05-11T02:02:35.660 回答
0

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

self.tableView.delegate = self;

这就是你经历这个的原因

这不起作用 - 单元格不显示被选中的指示

于 2013-10-21T12:54:28.810 回答
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];
    // ...
}
于 2013-10-21T07:33:47.510 回答
0

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

   -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
        UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
        [cell setSelected:NO animated:YES];
    }
于 2013-10-21T07:34:33.113 回答