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(编辑),它表示相关功能的集合。将插入和删除放在一起不会让我感到困惑。然而苹果走了另一条路,你的回答帮助了我,我学到了一些东西:)