UITableView选择并取消选择行

Hur*_*rkS 17 uitableview ios

我有一个UITableViewcell在触摸后保持高亮显示.我想知道如何在触摸后变得可见后立即删除高亮显示.

因此,当你触摸UITableViewCell时,我希望它被选中并突出显示,然后当用户举起手指时,我想取消选择并取消选中UITableViewCell.

这是我到目前为止所做的,取消选择有效,但仍然突出显示单元格.

#pragma mark -- select row
- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    NSLog(@"%@", indexPath);
    NSLog(@"%@", cell.textLabel.text);

}

#pragma mark -- deselect row
-(void) tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {

    [tableView deselectRowAtIndexPath:indexPath animated:YES];

}
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

nhg*_*rif 34

-(void) tableView:(UITableView *)tableView didDeselectRowAtIndexPath:
    (NSIndexPath *)indexPath {
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

这是一个无限循环,我很确定.但是......它有点走上正轨.您可以将该方法调用移入didSelectRowAtIndexPath:.

- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:
    (NSIndexPath *)indexPath {
    //stuff
    //as last line:
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

就此而言,deselectRowAtIndexPath可以随时随地调用您想要取消选择行的任何时间.

[self.myTableView deselectRowAtIndexPath:[self.myTableView 
    indexPathForSelectedRow] animated: YES];
Run Code Online (Sandbox Code Playgroud)