tableView中deselectRowAtIndexPath的作用 TableView didSelectRowAtIndexPath 不执行

IOS 不能触发didSelectRowAtIndexPath事件.

  1. delegate 没有设置。

  2. 可能tableview被其他控件覆盖。(比如加载视图)

  3. 手势与tableview点击事件冲突

手势与tableview点击事件冲突:

1、父类事件设置代理

UIGestureRecognizer *tapGesture  。。。

tapGesture.delegate = self;

2、覆盖方法

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
    if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) {
        return NO;
    }
    return  YES;
}

这样就可以了





tableView中deselectRowAtIndexPath的作用


复制代码
1 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
2 {
3     [tableView deselectRowAtIndexPath:indexPath animated:YES];
4     // 不加此句时,在二级栏目点击返回时,此行会由选中状态慢慢变成非选中状态。
5     // 加上此句,返回时直接就是非选中状态。
6 }

 


猜你喜欢

转载自blog.csdn.net/ai_pple/article/details/51121064