UITableCell滑动/滑动两个或多个单元格

时间:2017-02-28 08:54:37

标签: ios iphone swift uitableview uiswipegesturerecognizer

我想问一下,我怎么能在这张图片中看到这个功能:

Feature Image tutorial

我知道" editActionsForRowAt"但我认为它不是我需要做的事情的解决方案,所以我添加了UISwipeGestureRecognizer,我的代码看起来像这样:

func tableView(_ tableView:UITableView,cellForRowAt indexPath:IndexPath) - > UITableViewCell {

        let cell = tableView.dequeueReusableCell(withIdentifier: "cellId", for: indexPath) as! ConnectionTableCell
        let users = self.users[indexPath.section]
        let user = users.userInfo[indexPath.row]
        cell.userImage.image = UIImage(named: user.imageUrl)
        cell.name.text = user.name
        cell.work.text = user.work

        cell.selectionStyle = .none


        cell.addGestureRecognizer(UISwipeGestureRecognizer(target: self, action: #selector(didSwipeForRow)))

        return cell
}

func didSwipeForRow(识别器:UIGestureRecognizer){

    if recognizer.state == UIGestureRecognizerState.ended {
        let swipeLocation = recognizer.location(in: self.tableView)
        if let swipedIndexPath = tableView.indexPathForRow(at: swipeLocation) {
            let textConstant = tableView.frame.width + 10
            let imageConstant = tableView.frame.width - 20
            let swipeView = UIView()
            swipeView.backgroundColor = UIColor.themeColor(color: .green)

            let cell = tableView.cellForRow(at: swipedIndexPath) as! ConnectionTableCell
                let height = cell.frame.height
                let users = self.users[swipedIndexPath.section]
                let user = users.userInfo[swipedIndexPath.row]

                cell.addSubview(swipeView)

                swipeView.frame = CGRect(x: 0, y: 0, width: imageConstant - 60, height: height)
                cell.name.leftAnchor.constraint(equalTo: self.tableView.rightAnchor, constant: textConstant).isActive = true
                cell.work.leftAnchor.constraint(equalTo: self.tableView.rightAnchor, constant: textConstant).isActive = true
                cell.userImage.rightAnchor.constraint(equalTo: self.tableView.rightAnchor, constant: imageConstant).isActive = true

        }
    }
}

但问题是当我刷一个单元格时它也会影响重用单元格,就像你在这张图片中看到的那样: swipe cell affect another cell

有关如何解决此问题的任何建议?先谢谢你们。

0 个答案:

没有答案