簡體   English   中英

SwipCellKit swift 5 - 無法滑動啟動刪除菜單

[英]SwipCellKit swift 5 - unable to swipe to launch the dele menu

我將 Xcode 11.2 和 Swift 5 與最新版本的SwipeCellKit

在我的代碼中,我有一個UITableView ,其中包含單元格。 我希望從右側添加滑動操作,這將讓我使用兩個操作:刪除和編輯。

現在,我只嘗試刪除操作。 但是,滑動似乎不起作用,我根本沒有采取任何行動。

我在這里想念什么?

這是我的代碼:

CartTableViewCell

import UIKit
import SwipeCellKit

class CartTableViewCell: SwipeTableViewCell
{
    @IBOutlet weak var mainView: UIView!
    @IBOutlet weak var productName: UILabel!
    @IBOutlet weak var productImage: UIImageView!
    @IBOutlet weak var priceForKg: UILabel!
    @IBOutlet weak var quantity: UITextField!
    @IBOutlet weak var subTotal: UITextField!

    override func awakeFromNib()
    {
        super.awakeFromNib()

        self.layer.borderWidth = 1
        self.layer.cornerRadius = 25
        self.layer.borderColor = self.layer.backgroundColor

        self.mainView.layer.borderWidth = 1
        self.mainView.layer.cornerRadius = 25
        self.mainView.layer.borderColor = self.mainView.layer.backgroundColor

        self.quantity.layer.borderWidth = 1
        self.quantity.layer.borderColor = #colorLiteral(red: 0.8078431487, green: 0.02745098062, blue: 0.3333333433, alpha: 1)
        self.quantity.layer.cornerRadius = 5

        self.subTotal.layer.borderWidth = 1
        self.subTotal.layer.borderColor = #colorLiteral(red: 0.8078431487, green: 0.02745098062, blue: 0.3333333433, alpha: 1)
        self.subTotal.layer.cornerRadius = 5
    }
    override var frame: CGRect {
      get {
          return super.frame
      }
      set (newFrame) {
          var frame =  newFrame
          frame.origin.y += 4
          frame.size.height -= 2 * 5
          super.frame = frame
      }
    }
    override func setSelected(_ selected: Bool, animated: Bool)
    {
        super.setSelected(selected, animated: animated)
    }
}

購物車視圖控制器

import UIKit
import SwipeCellKit

class CartViewController: UIViewController
{
    @IBOutlet weak var cartTableView: UITableView!

    var listOfProducts : [Product] = []

    override func viewDidLoad()
    {
        super.viewDidLoad()

        self.cartTableView.delegate = self
        self.cartTableView.dataSource = self
        self.cartTableView.separatorStyle = .none
        self.cartTableView.allowsSelection = false
        self.cartTableView.backgroundColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)


        self.subTotalView.layer.borderWidth = 1
        self.subTotalView.layer.borderColor = self.subTotalView.layer.backgroundColor
        self.subTotalView.layer.cornerRadius = 10

        let cellNib = UINib(nibName: "CartTableViewCell", bundle: nil)
        self.cartTableView.register(cellNib, forCellReuseIdentifier: "cartProductCell")
    }
}

extension CartViewController : UITableViewDelegate, UITableViewDataSource, SwipeTableViewCellDelegate
{
    func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath, for orientation: SwipeActionsOrientation) -> [SwipeAction]?
    {
        guard orientation == .right else { return nil }

        let deleteAction = SwipeAction(style: .destructive, title: "Delete")
        {
            action, indexPath in
            // handle action by updating model with deletion
        }

        // customize the action appearance
        deleteAction.image = UIImage(named: "Delete")

        return [deleteAction]
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
    {
        return listOfProducts.count
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
    {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cartProductCell", for: indexPath) as! CartTableViewCell
        return cell
    }
}

我找到了答案,如果你們中的任何人正在尋找它,缺少的行是在返回之前設置單元格的代表:

cell.delegate = self

如本文所述: SwipeCellKit 滑動刪除未被調用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM