swift 是否从表格视图单元格中重新加载表格视图?

jk9hmnmh  于 2022-12-28  发布在  Swift
关注(0)|答案(1)|浏览(181)

是否可以从表格视图单元格的控制器中重新加载表格视图?我的表格视图单元格中有一个自定义删除按钮,我希望从单元格的删除按钮的IBAction函数中删除该单元格。
在我的例子中,可以通过允许单元格通知表视图重新加载来完成,也可以通过允许单元格删除自身来完成。
我知道如何从表视图的视图控制器中重新加载表视图,但不知道如何从单元格中重新加载表视图。我找不到单元格自删除或重新加载其父表视图的语法。如有帮助,我将不胜感激。

ulydmbyx

ulydmbyx1#

如果你使用的是故事板,那么你可以直接在你的控制器中创建按钮的IBAction,如果你使用的是笔尖,那么你可以简单地在你的删除按钮上添加一个点击手势,同时退出你的单元格。

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell =  dequeueReusableCell(withIdentifier: "CustomCell", for: indexPath) as! CustomCell
    // if you have created a cell using nibs. if you are using storyboards use IBAction instead.
    cell.deleteButton.addGestureRecognizer(UITapGestureRecognizer(target: self, #selector(handleButtonTap))
    //set the button tag equal to the cell row
    cell.deleteButton.tag = indexPath.row
    return cell
}

在删除按钮的IBAction中

@IBAction func handleDeleteButtonTap(_ sender: Any) {
    guard let button = sender as? UIButton else {
        return
    }
    let index = button.tag
    // delete item at index
    // then
    tableView.reloadData()
}

如果您使用的是手势识别器,则使用以下方法

@objc func handleDeleteButtonTap(_ sender: UITapGestureRecognizer) {
    guard let index = sender.view?.tag else {
        return
    }
    // delete item at index
    // then
    tableView.reloadData()
}

相关问题