根据我的上一个问题(https://stackoverflow.com/a/46686134?noredirect=1)。由于我在单元格内创建了一个视图作为分隔符,我的其他视图控制器按钮搞砸了,我似乎无法解决它。
问题是:如果我在UITableViewCell中创建一个新的UIView然后从应用程序中删除该单元格,那么在其中创建的UIView是否仍然存在?我是否必须以某种方式删除它或者自己删除,因为我将视图添加到单元格中。
答案 0 :(得分:2)
没有“删除那个单元格”这样的东西。您可以从表中删除一行,但单元格(UITableViewCell实例)从不“已删除” - 它们将被重用。在重新使用之前,您需要重新配置每个单元。如果将视图放入某个单元格的某个单元格中,并且如果该单元格在另一行中重复使用,则不希望该视图存在,则由您从单元格中删除该视图。
答案 1 :(得分:1)
不,视图不会从单元格中删除自己。删除单元格或在屏幕外滚动时,它们会被添加到回收队列中。下次您致电dequeueReusableCell(withIdentifier identifier: String, for indexPath: IndexPath)
时,您可能会将该单元格返回给您,包括您添加到其中的观看次数。
一般来说,最好将所有视图设置为单元格原型的一部分。通过这种方式,您可以将可重复使用的单元格出列,并且它具有您需要的所有视图,而且没有额外的内容。如果某些单元格需要具有不同数量的视图,请为具有不同标识符的单元格创建新模板,然后将其中一个单元格取而代之。
或者,你可以设置你的单元格原型来创建一个UITableViewCell的自定义子类,其中包含(弱)出口,用于最初为零的额外视图。然后,如果你添加这些视图挂钩他们的网点。最后,当您将这样的单元格出列时,检查这些出口并删除任何非零视图,作为设置单元格以便重复使用的一部分。