禁用 UITableView 中特定 UITableViewCell 的删除选项
Disable delete option for specific UITableViewCell in a UITableView
对于 UITableViews,我添加了三个不同的单元格
如何为特定单元格启用删除选项
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
switch dataSource[indexpath.section].menu {
case "Attachment":
if editingStyle == AttachmentTableViewCell.EditingStyle.delete {
attachmentList.remove(at: indexPath.row)
tableView.deleteRows(at: [indexPath], with: UITableView.RowAnimation.automatic)
}
break
default:
break
}
}
在这种情况下,它也显示其他单元格的删除选项。
如何停止在向其他 UITableViewCell 滑动时显示删除选项。
为不应显示删除选项的索引路径实施 tableView(_:editingStyleForRowAt:)
和 return none
。
这对我有用。
正在覆盖 UITableViewController
中的此函数
或实施它 UITableViewDelegate
override func tableView(_ tableView: UITableView, leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration?
索引路径是您想要的操作 return a UISwipeActionsConfiguration
else return nil.
像这样
override func tableView(_ tableView: UITableView, leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
// return nil on specific rows
guard indexPath.row != 1 else {
return nil
}
let contexualAction = UIContextualAction(style: .normal, title: "Action") { _, _, _ in
// Do Action
}
let swipeAction = UISwipeActionsConfiguration(actions: [contexualAction])
return swipeAction
}
对于 UITableViews,我添加了三个不同的单元格
如何为特定单元格启用删除选项
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
switch dataSource[indexpath.section].menu {
case "Attachment":
if editingStyle == AttachmentTableViewCell.EditingStyle.delete {
attachmentList.remove(at: indexPath.row)
tableView.deleteRows(at: [indexPath], with: UITableView.RowAnimation.automatic)
}
break
default:
break
}
}
在这种情况下,它也显示其他单元格的删除选项。 如何停止在向其他 UITableViewCell 滑动时显示删除选项。
为不应显示删除选项的索引路径实施 tableView(_:editingStyleForRowAt:)
和 return none
。
这对我有用。
正在覆盖 UITableViewController
中的此函数
或实施它 UITableViewDelegate
override func tableView(_ tableView: UITableView, leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration?
索引路径是您想要的操作 return a UISwipeActionsConfiguration
else return nil.
像这样
override func tableView(_ tableView: UITableView, leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
// return nil on specific rows
guard indexPath.row != 1 else {
return nil
}
let contexualAction = UIContextualAction(style: .normal, title: "Action") { _, _, _ in
// Do Action
}
let swipeAction = UISwipeActionsConfiguration(actions: [contexualAction])
return swipeAction
}