Привет! Я использую SwipeCellKit и хотел бы сильно ударить .right, чтобы удалить строку по адресу indexPath.row. Я вызвал функцию editActionsForRowAt indexPath и использовал приведенный ниже код, но пользователь все еще не может провести пальцем для удаления.
У меня есть следующие переменные
var allLists:[ShoppingList] = []
var isSwipeRightEnabled = false
var defaultOptions = SwipeTableOptions()
Мой код:
func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath, for orientation: SwipeActionsOrientation) -> [SwipeAction]? {
if orientation == .left {
guard isSwipeRightEnabled else { return nil }
}
let delete = SwipeAction(style: .destructive, title: nil) { action, indexPath in
var list: ShoppingList
if self.allLists.count > 0 {
list = self.allLists[indexPath.row]
self.allLists.remove(at: indexPath.row)
} else {
list = self.allLists[indexPath.row]
}
list.deleteItemInBackground(shoppingList: list)
action.fulfill(with: .delete)
self.tableView.reloadData()
}
configure(action: delete, with: .trash)
return [delete]
}
func configure(action: SwipeAction, with descriptor: ActionDescriptor) {
action.title = descriptor.title()
action.image = descriptor.image()
action.backgroundColor = descriptor.colour
}
func tableView(_ tableView: UITableView, editActionsOptionsForRowAt indexPath: IndexPath, for orientation: SwipeActionsOrientation) -> SwipeTableOptions {
var options = SwipeTableOptions()
options.transitionStyle = defaultOptions.transitionStyle
options.buttonSpacing = 11
return options
}
У меня есть вспомогательный файл .swift с именем SwipeTableViewHelpers.swift, который выглядит так:
import Foundation
import UIKit
enum ActionDescriptor {
case save, returnPurchase, trash
func title() -> String? {
switch self {
case .save: return "Save"
case .returnPurchase: return "Return"
case .trash: return "Delete"
}
}
var colour: UIColor {
switch self {
case .save: return .lightGray
case .returnPurchase: return .lightGray
case .trash: return .red
}
}
func image() -> UIImage? {
let name: String
switch self {
case .save: name = "saveItem"
case .returnPurchase: name = "ReturnFilled"
case .trash: name = "Trash"
}
return UIImage(named: name)
}
}
func createSelectedBackgroundView() -> UIView {
let view = UIView()
view.backgroundColor = UIColor.lightGray.withAlphaComponent(0.2)
return view
}
и функция, вызываемая для deleteItemInBackground:
func deleteItemInBackground(shoppingList: ShoppingList) {
let ref = firebase.child(kSHOPPINGLIST).child(FUser.currentId()).child(shoppingList.id)
ref.removeValue()
}
Когда пользователь проводит по таблице ViewCell, ничего не происходит, может кто-нибудь увидеть причину этого?
Спасибо