Bar*_*lka 3 iphone uitableview uiview ios swift
我正在构建一个待办事项列表应用程序,并且在我的视图控制器中持有一个任务模型数组和tableView。
该tableView中的每个单元格包含几个UI元素,其中一个是实际上是一个复选框的UIView,由Skyscanner的pod实现:https : //github.com/Marxon13/M13Checkbox
当用户点击复选框(带有动画)时,我想删除一个单元格。
我为UIView设置了IBAction,我知道要删除数组中的哪个元素(我给每个UIView都加了标签),但是我不能使用该方法
tableView.deleteRows(at: [IndexPath], with: UITableViewRowAnimation)
Run Code Online (Sandbox Code Playgroud)
因为我没有索引路径。我想找到一种删除带有索引的单元格的好方法,最好不要持有indexPath变量(我尝试过但不知道如何正确实现它,因为可以从各种索引中删除单元格)。
谢谢你的帮助!
谢谢大家的帮助!我正在回答自己的问题,因为这是您回答的结合!
正如Puneet Sharma,Reinier Melian和Chen Yun所说,我设法在函数内部创建了一个索引路径。Puneet的注释非常重要,必须在删除单元格之前从数组中删除元素。
PS。也许我甚至可以在问问题之前创建IndexPath方式,但是
self.tableView.deleteRows(at: [IndexPath(row: checkbox.tag, section: 0)], with: .automatic)
Run Code Online (Sandbox Code Playgroud)
Xcode根本不会自动完成此初始化。
这是删除单元格的代码,就像我想要的那样:
@IBAction func completeBtnPressed(_ sender: Any) {
let checkbox = (sender as! M13Checkbox)
self.tasks.remove(at: checkbox.tag)
self.tableView.deleteRows(at: [IndexPath(row: checkbox.tag, section: 0)], with: .automatic)
}
Run Code Online (Sandbox Code Playgroud)
非常感谢!
| 归档时间: |
|
| 查看次数: |
3155 次 |
| 最近记录: |