gpt4 book ai didi

ios - 无法将正确的图像传递给 uitableviewcell

转载 作者:行者123 更新时间:2023-11-28 06:10:41 25 4
gpt4 key购买 nike

我有 2 个结构,如下所示:

struct ProductImage {
let id : String
let url : URL
let isDefault : Bool
}

struct Product {
let name : String
let id : String
var images = [ProductImage]()

init(name : String, id: String) {
self.name = name
self.id = id
}

mutating func add(image: ProductImage) {
images.append(image)
}
}

现在我有一个 Collection View ,上面有一些单元格,每个单元格都有一个图像、一个名称标签和一个 ID 标签。它还有一个按钮,当我单击它时,collectionview 单元格上的图像以及名称和 id 显示在 tableviewcell 中并存储在数组中。返回并单击第二个 collectionview 项的按钮后,我现在将看到 2 个单元格。(第一个和第二个)。我正在这样做......

func SellBtnTapped(_ sender: UIButton) {

let indexPath = collectionView?.indexPath(for: ((sender.superview?.superview) as! RecipeCollectionViewCell))

self.photoThumbnail = self.arrayOfURLImages[(indexPath?.row)!]

let myVC = storyboard?.instantiateViewController(withIdentifier: "productSellIdentifier") as! sellTableViewController

let productObject = productData1[(indexPath?.row)!]

if selectedItems == nil {
selectedItems = [Product(name:productObject.name, id: productObject.id)]

} else {
selectedItems?.append(productObject)

}
myVC.arrProduct = selectedItems
navigationController?.pushViewController(myVC, animated: true) }

但我的问题是我无法像传递名称和 ID 那样传递正确的图像。在我的例子中,传递的名称和 ID 是正确的,但传递的图像是错误的。我该如何解决...?

编辑:图像和其他数据都添加到数组的 json 解析如下所示

     var theProduct = Product(name: name, id: id, theRate: rate, quantity: qty, sku: skuCode, prdCateg: prodCat, prodDescr: description)
if let images = anItem["product_images"] as? [[String:String]] {
for image in images {
guard let imageId = image["id"],
let url1 = image["image"],
let isDefault = image["is_default"] else {continue}
print(imageId)
let productImage = ProductImage(id: imageId, url: URL(string: url1)!, isDefault: isDefault == "1")
theProduct.add(image: productImage) //image is added here
self.productData1.append(theProduct)

let url = URL(string: url1)
let data = try? Data(contentsOf: url!)
self.arrayOfURLImages.append(UIImage(data: data!)!)
self.appDelegate.commonArrayForURLImages = self.arrayOfURLImages

编辑 2:

这就是我在 tableviewcell 中分配图像和其他数据的方式。这是 cellForRow 的代码..(加载单元格的 TableView 的代码..)

   func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell: sellTableViewCell = tableView.dequeueReusableCell(withIdentifier: "sellProductIdentifier") as! sellTableViewCell

cell.prdImgView?.image = self.appDelegate.commonArrayForURLImages[indexPath.row]

let product = arrProduct?[indexPath.row]
cell.produvtNameLabel.text = product?.name
cell.rateTextField.text = product?.theRate

return cell
}

最佳答案

我认为问题出在异步加载的图像中,下载图像需要一些时间,下载后可能会将错误的图像分配给单元格。

试试这个 https://github.com/onevcat/Kingfisher

关于ios - 无法将正确的图像传递给 uitableviewcell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46783605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com