将项目从一个数组移动到另一个数组

问题描述 投票:0回答:0

所以我在尝试将一个项目从一个数组内部移动到另一个数组时遇到了很多麻烦,我有一个类,它包含 2 个数组,一个用于购物车页面,一个用于愿望清单,我希望能够在它们之间自由移动这些项目2个数组。这些数组内部有一个遵循结构的产品。

import UIKit

final class SneakersTableCell: UITableViewCell {
    private let productImageView = UIImageView()
    private let categoryLabel = UILabel()
    private let nameLabel = UILabel()
    private let priceLabel = UILabel()
    private let sizeLabel = UILabel()
    private let colorLabel = UILabel()
    private let removeButton = UIButton()
    private let clearImage = UIImage(named: "Image-1")
    let qtyButton = UIButton(type: .system)
    private let arrowQty = UIImage(named: "Arrow_Qty")?.withRenderingMode(.alwaysTemplate)
    private let wishButton = UIButton()
    let orderSummaryCell = OrderSummaryCell()

    var removeMe: ((SneakersTableCell) -> ())?
    
    var viewModel = CustomViewModel()

    override init(style: UITableViewCell.CellStyle,reuseIdentifier: String?) {
        super.init(style: .default,reuseIdentifier: "SneakersTableCell")
        print("New cell has been create")
        setupUI()
        setupConstraints()
        removeButton.addTarget(self, action: #selector(removeButtonTapped(_:)), for: .touchUpInside)
        
    }
    
    @objc func removeButtonTapped(_ sender: UIButton) {
        print("Tapped remove button")
        // call the closure
        removeMe?(self)
    }
    
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    func configure(product: BagProduct) {
        productImageView.image = product.image
        categoryLabel.text = product.category
        nameLabel.text = product.name
        priceLabel.text = "\(product.price)€"
        sizeLabel.text = "Size: \(product.size)"
        colorLabel.text = "Color: \(product.color)"
    }
}

前面的代码显示了 wishButton 的位置。

import UIKit

protocol BagProduct {
    var image: UIImage { get }
    var category: String { get }
    var name: String { get }
    var price: Double { get }
    var size: Int { get }
    var color: String { get }
}
protocol WishProduct {
    var image: UIImage { get }
    var category: String { get }
    var name: String { get }
    var price: Double { get }
}

struct WishProducts: WishProduct {
    let image: UIImage
    let category: String
    let name: String
    let price: Double
    
    init(image: UIImage, category: String, name: String, price: Double) {
        self.image = image
        self.category = category
        self.name = name
        self.price = price
    }
}
    
struct BagProducts: BagProduct {
    let image: UIImage
    let category: String
    let name: String
    let price: Double
    let size: Int
    let color: String
    
    init(image: UIImage, category: String, name: String, price: Double, size: Int, color: String) {
        self.image = image
        self.category = category
        self.name = name
        self.price = price
        self.size = size
        self.color = color
    }
}

这是结构。

class Sneakers {
    static let shared = Sneakers()
    var bagProducts = [
        BagProducts(image: UIImage(named: "Image")!, category: "Men", name: "Adidas Gazelle", price: 100.00, size: 40, color: "Blue"),
        BagProducts(image: UIImage(named: "Image")!, category: "Men", name: "Adidas Gazelle", price: 100.00, size: 40, color: "Blue"),
    ]
    
    var wishProducts = [
        WishProducts(image: UIImage(named: "AdidasGalaxy")!, category: "Women", name: "Adidas Galaxy 6", price: 55.00),
        WishProducts(image: UIImage(named: "NewBalance")!, category: "Men", name: "New Balance BB550", price: 150.00),
    ]
}

最后是数组类。

你们能想到一些我已经尝试了很多东西但似乎没有任何效果的东西吗?

ios swift uitableview mobile uikit
© www.soinside.com 2019 - 2024. All rights reserved.