所以我在尝试将一个项目从一个数组内部移动到另一个数组时遇到了很多麻烦,我有一个类,它包含 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),
]
}
最后是数组类。
你们能想到一些我已经尝试了很多东西但似乎没有任何效果的东西吗?