美文网首页
iOS中UITableViewCell未运行didSelectR

iOS中UITableViewCell未运行didSelectR

作者: _compass | 来源:发表于2019-03-07 15:50 被阅读0次

    昨天发现一个问题:点击UITableViewCell,没有运行didSelect:

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
         
    }
    

    这种问题有几种可能:

    1.allowSelection设置为了NO
    2.未加delegate=self
    3.给UITableView添加了guesture

    第三种情况,要么用touchEnd代替guesture,也可以使用下面方法解决:

    -(BOOL)gestureRecognizer:(UIGestureRecognizer*)gestureRecognizershouldReceiveTouch:(UITouch *)touch {
       if([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) {
    
       // 如果当前是tableView
       
       return NO;
       }
       return YES;
    }
    
    

    也可以用touchEnd代替gesture.

    在解决了不能点击的问题之后,如果cell上有UILabel,UITextField,又会出现点击之后颜色变透明的问题。

    解决方法就是在UITableViewCell里重写layoutSubviews
    例如:

        override func layoutSubviews() {
            super.layoutSubviews()
            self.separatorLineUp.backgroundColor = UIColor.black
            self.separatorLineDown.backgroundColor = UIColor.init(red: 0.4, green: 0.4, blue: 0.4, alpha: 1.0)
        }
    

    如此解决问题。

    相关文章

      网友评论

          本文标题:iOS中UITableViewCell未运行didSelectR

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