美文网首页iOS开发知识小集iOS开发点滴iOS 开发继续加油
解决UITableViewCell点击无效即不执行didSele

解决UITableViewCell点击无效即不执行didSele

作者: 小蜜蜂Bee | 来源:发表于2020-04-01 09:15 被阅读0次

    有时候确实挺奇怪的,按tableView的用法,实现了tableView的代理方法之后,点击cell应该是会执行didSelectRowAtIndexPath方法的,不过事情就是这么巧!有时候是真的没执行,那么现在我们就来讲讲如何解决点击cell不执行didSelectRowAtIndexPath方法的问题。

    步骤1:

    在cellForRowAtIndexPath方法里面创建cell的时候,给cell的contentView添加一个点击手势,示例代码如下:

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
        
        
        XMFIdeaDetailCommentCell *cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XMFIdeaDetailCommentCell class])];
        
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
        
        cell.delegate = self;
        
        [self setCommentModelOfCell:cell atIndexPath:indexPath];
        
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
        
        //解决cell点击无效的问题
        UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapAction:)];
        
        [cell.contentView addGestureRecognizer:tap];
        
        
        return cell;
    }
    

    步骤2:

    执行点击手势绑定的方法,示例代码如下:

    //点击手势绑定的方法
    -(void)tapAction:(UITapGestureRecognizer *)tap{
        
        CGPoint point = [tap locationInView:self.myTableView];
        
        NSIndexPath *indexPath = [self.myTableView indexPathForRowAtPoint:point];
        
        XMFIdeaDetailCommentCell *cell = [self.myTableView cellForRowAtIndexPath:indexPath];
        
    //判断手势点击的点是否在按钮视图内
        CGRect rc = [cell convertRect:cell.replyBtn.frame toView:self.myTableView];
        
        if (CGRectContainsPoint(rc, point)) {
         
            DLog(@"触摸点在按钮视图内");
            
            
        }else{
            
           
            
        }
        
        
        
    }
    
    

    这样就可以解决点击cell不执行didSelectRowAtIndexPath方法的问题了,搞定!

    如果以上的方法帮助到你了,欢迎分享,更欢迎赞赏,也可以直接打开支付宝、微信、QQ的扫一扫功能直接扫下面的支付宝、微信、QQ三合一打赏码进行打赏支持作者创作,感谢感谢!

    赞赏码

    欢迎和我交流,微信与QQ同号:834537795(小蜜蜂)

    相关文章

      网友评论

        本文标题:解决UITableViewCell点击无效即不执行didSele

        本文链接:https://www.haomeiwen.com/subject/ksfouhtx.html