Ios UITableView插入行装饰

Ios UITableView插入行装饰,ios,swift,uitableview,Ios,Swift,Uitableview,我试图通过在导航栏上提供编辑按钮来启用对我的UITableView的编辑 其目的是允许用户插入新项目并删除现有项目。 单击编辑按钮时,iOS显示“删除”装饰(删除效果良好),但不显示“插入” 我已将navigationItem.rightBarButtonItem=editButtonItem添加到我的UIViewControllers viewDidLoad中,并已将以下方法添加到我的UITableViewDataSource委托中: func tableView(_ tableVie

我试图通过在导航栏上提供编辑按钮来启用对我的
UITableView
的编辑

其目的是允许用户插入新项目并删除现有项目。 单击编辑按钮时,iOS显示“删除”装饰(删除效果良好),但不显示“插入”

我已将
navigationItem.rightBarButtonItem=editButtonItem
添加到我的
UIViewControllers viewDidLoad
中,并已将以下方法添加到我的
UITableViewDataSource
委托中:

    func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
        return true
    }

    func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
        if editingStyle == .delete {
            // Delete the row from the data source
            AppDelegate.persistenceContext.delete(self.fetchedResultsController.object(at: indexPath))
            AppDelegate.saveContext()
        } else if editingStyle == .insert {
            let current = self.fetchedResultsController.object(at: indexPath)
// do rest of insertion logic
        }
    }
我错过了什么

哦,出于兴趣,如果这是可能的话,新的单元格会被插入到启动动作的单元格的上方还是下方

对于记录,我可以向单元格中添加自定义滑动操作,但用户反馈他们更喜欢编辑按钮


如果有任何提示,我将不胜感激,谷歌搜索给我的只是使用按钮插入新行,或添加自定义滑动动作。

您需要实现委托方法:

func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCell.EditingStyle
对于给定的索引路径,返回
.delete
.insert
.none
。通常只有一行(通常是第一行或最后一行)将返回
。insert
,其余将返回
。delete
。对于无法插入或删除的任何行,返回
。无

为了显示绿色+(
.insert
)图标,您还需要覆盖
setEditing(uediting:Bool,animated:Bool)
方法来添加/删除额外的行,这种情况并不少见


另一种方法是在导航栏中显示+图标,而不是有一行带有插入图标。

因此,如果我理解正确,一行左侧只能有一个装饰?这是正确的。有两个是没有意义的。这不是我想要的答案:)。谢谢:)为什么?如果将insert和delete放在同一行上,可能会造成混淆。我们的想法是,在可以删除的行旁边有delete,在一行旁边有insert,这样用户就可以更改为向表中添加新行。以数字为例,右键单击一行,您可以从显示的上下文菜单中插入和删除,事实上,在iOS上,delete夹在复制和行操作之间。。。在关联菜单上。在必须应用程序中,我使用的编辑功能通常是分组在一起。同样在这种情况下,请记住添加到导航栏的按钮是Edit(编辑),它表示相关功能的集合。将插入和删除放在一起不会让我感到困惑。然而苹果走了另一条路,你的回答帮助了我,我学到了一些东西:)