删除其中包含 IBOutlets 的 UITableViewCell

Posted

技术标签:

【中文标题】删除其中包含 IBOutlets 的 UITableViewCell【英文标题】:Delete UITableViewCell that has IBOutlets in it 【发布时间】:2017-08-28 07:14:26 【问题描述】:

应该很简单,但我忘了。我是否需要在 delete 方法以及 cellForRowAt 中将单元格出列?

这是细胞:

class Row : UITableViewCell 
@IBOutlet weak var name: UILabel!
@IBOutlet weak var rating: UILabel!
@IBOutlet weak var address: UILabel!
@IBOutlet weak var status: UILabel!

删除方法如下:

 override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) 
    print(indexPath.row)

    if (editingStyle == .delete) 

        tableView.deleteRows(at: [indexPath], with: .automatic)
    

如何添加要删除的变量?我知道我不能简单输入例如:

name.remove(at: indexPath ) <-- or something like that. whats the cleanest method? Thanks 

【问题讨论】:

Stream 你能解释一下你的问题吗?这里叫什么名字? 你必须先从dataSource数组中移除对象,然后使用deleteRows 【参考方案1】:

如果您的意思是获取您删除的行。

let cell = tableView.cellForRow(at: IndexPath)

在您删除该行之前使用这个。

并且您必须在删除行之前从数据源中删除数据。在这种情况下,您需要dataArray.remove(at: indexPath.row)

【讨论】:

如果 IBOutlets 连接到 CoreData...我可以只删除数据而不是删除每个变量,对吗?像上面一样。

以上是关于删除其中包含 IBOutlets 的 UITableViewCell的主要内容,如果未能解决你的问题,请参考以下文章

在 customtableviewcell 中加载并设置其 IBOUTLETS 时请求成员错误

使用 loadNibNamed: 方法时是不是需要释放 IBOutlets?

一次引用 2 个不同 IBOutlets 的最有效方法(其中每个只存在于它自己的大小类中)?

将 IBOutlets 连接到 UITableViewCell 原型

在 Segue 之后失去@IBOutlets

Swift Cocoa Touch 自定义单元格为 IBOutlets 返回 nil