gpt4 book ai didi

ios - UITableView插入行装饰

转载 作者:行者123 更新时间:2023-11-28 13:23:14 25 4
gpt4 key购买 nike

我正在尝试通过在导航栏上提供一个“编辑”按钮来启用对我的 UITableView 的编辑。

目的是允许用户插入新项目和删除现有项目。单击“编辑”按钮时,iOS 显示“删除”装饰(删除工作正常),但不显示“插入”

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

    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
}
}

我错过了什么?

哦,出于兴趣,如果可能的话,新单元格是插入到发起操作的单元格之上还是之下?

郑重声明,我可以向单元格添加自定义滑动操作,但用户反馈他们更喜欢编辑按钮。

任何光线都将不胜感激,谷歌搜索让我明白的是使用按钮插入新行,或添加自定义滑动操作。

最佳答案

您需要实现委托(delegate)方法:

func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCell.EditingStyle

为给定的索引路径返回 .delete.insert.none。通常只有一行(通常是第一行或最后一行)会返回 .insert,其余行会返回 .delete。为任何不能插入或删除的行返回 .none

为了显示绿色 + (.insert) 图标。

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

关于ios - UITableView插入行装饰,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58791679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com