我有一个带有某些数据的UITableView,我希望将一个始终处于编辑状态的单元格(称为“添加记录”之类)放在第一行或部分中,以便始终显示系统插入控制。这可能吗?如果是这样,怎么办?

我已经到处搜寻了。 Apple's documentation列出setEditing(_:animated:)上的UITableViewCell方法。我同时使用了这两个参数,并在加载的单元格上将isEditing设置为true,它似乎处于isEditing状态,因为在我打开“处于编辑状态的单选”之前,该表不允许选择它。但是没有插入或删除控件出现,并且永远不会调用委托的tableView(_:editingStyleForRowAt:)

如果我在表视图本身上调用setEditing(_:animated:),则该单元格看起来很好,但这将每个cel设置为编辑,删除以及所有操作!那不是我想要的

我想我只能使用一个普通的单元格,并使用一个插入控件的图像,但是如果可能的话,我宁愿使用Apple的系统(因为它们可能会改变)。另外:我总是可以在加载时加载一个编辑表,并缓存一个编辑控件的快照,但这比它的价值还多!

我要做什么甚至有可能吗?你明白我要做什么吗?您可以提供的任何建议都将非常有帮助。

最佳答案

您可以尝试以下方法:


继续在setEditing本身上使用UITableView
要仅显示特定单元格的编辑控件,请实施
canEditRowAtIndexPath方法
UITableViewDataSource委托并仅对要允许对其进行编辑的单元格返回true。
此时,您的特定单元格将显示编辑控件,但是这些单元格是不可选择的。您需要在表格视图上设置allowsSelectionDuringEditing
以便选择单元格。接下来,您可能想要
防止通过实现突出显示编辑单元格
shouldHighlightRowAtIndexPath委托方法并为返回true
除了要保留在编辑模式下的单元格以外的所有单元格。


其他可能的解决方案:


创建自己的UITableViewCell并自己实现编辑UI(将始终可见),然后在需要时使用此单元格。
将另一个UITableView与将始终处于编辑模式的单个单元格一起使用,并将其放置在另一个表的上方,以使其看起来像是同一张表。这是一个可能的解决方案,但很可能是一个过大的杀伤力。

关于ios - 是否可以使UITableView始终在编辑模式下显示一行,以显示其插入或删除控件?如果是这样,怎么办?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55441968/

10-16 14:09