在UITableview上滑动删除而不确认

问题描述 投票:0回答:2

我有一个使用websocket的实时数据的tableview。表视图每两秒刷新一次单元格(或行)。

我想实现要删除的功能滑动(不显示删除按钮),因为我每次调用重新加载行时尝试删除特定行,表视图对齐方式崩溃。任何人都可以帮忙吗?

ios swift uitableview delete-row
2个回答
0
投票

你可以将UISwipeGestureRecognizer添加到你的TableViewCell来做到这一点。

例如

let swipeToDeleteGesture = UISwipeGestureRecognizer(target: self, action: #selector(deleteCellWithoutConfirm(gesture:)))
swipeToDeleteGesture.direction = .left
your_cell.addGestureRecognizer(swipeToDeleteGesture)

并处理删除功能

@objc func deleteCellWithoutConfirm(gesture: UIGestureRecognizer) {
    guard let cell = gesture.view as? UITableViewCell,
        let indexPath = tableView.indexPath(for: cell) else {
        return
    }
    // delete your data first, then reload tableView
    your_data.remove(at: indexPath.row)
    tableView.reloadSections(IndexSet(integer: 0), with: UITableViewRowAnimation.fade)
}

-1
投票

斯威夫特4

func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
        return true
}

func tableView(_ tableView: UITableView, commit editingStyle:   UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
        if (editingStyle == .delete) {
            data.remove(at: indexPath.row)
            tableView.beginUpdates()
            tableView.deleteRows(at: [indexPath], with: .middle)
            tableView.endUpdates()
        }
}
© www.soinside.com 2019 - 2024. All rights reserved.