swift2 如何在swift中删除按钮action上的uitableview行?

bqf10yzr  于 2022-11-06  发布在  Swift
关注(0)|答案(4)|浏览(246)

我想在swift中删除uibutton操作上的一个UITableView行。

bhmjp9jg

bhmjp9jg1#

你需要做的就是:

func myButtonMethod(sender : UIButton!) {
   self.dataSource.removeAtIndex(myIndex) // dataSource being your dataSource array
   self.tableview!.reloadData()
// you can also call this method if you want to reduce the load, will also allow you to choose an animation  
//self.tableView!.deleteRowsAtIndexPaths([NSIndexPath(forItem: myIndex, inSection: 0)], withRowAnimation: nil)
}

添加一个如下方法作为按钮目标:

self.myButton.addTarget(self, action: "myButtonMethod:", forControlEvents: .TouchUpInside)
i1icjdpr

i1icjdpr2#

你可以这样做:

@IBAction func removeCell() {
    self.dataSource.removeAtIndex(index) // this is the dataSource array of your tableView
    tableView.deleteRowsAtIndexPaths([NSIndexPath(forItem: index, inSection: 0)], withRowAnimation: .Left)
}

将此IBAction连接到按钮的touchUpInside操作。请确保先从数据源中删除该元素,然后才能从表视图中删除它。
如果您不想以动画形式显示删除行的过程,只需将该行代码替换为tableView.reloadData()即可

qpgpyjmq

qpgpyjmq3#

请尝试以下操作:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
{
   rowIndex = indexPath.row          // declare a global variable
}

@IBAction func reomveButton(_ sender: Any) 
{
   self.array.remove(at: rowIndex)
   TableView.reloadData()
}
ttisahbt

ttisahbt4#

小小解释一下......对于Swift 4,Swift 5......首先声明类变量:

var indexForCell = Int()

然后使IBAction删除行:

@IBAction func removeRow(_ sender: Any) { 
    self.modelArray.remove(at: indexForCell)
    myTableView.reloadData()
}

更改索引变量的默认值以匹配indexPath:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    indexForCell = indexPath.row
}

最后,为可重用单元格按钮添加操作:

myRemoveButton.addTarget(self, action: #selector(self.removeRow), for: .touchDown)

这将使用myRemoveButton删除行的每个示例。

相关问题