首页 > 解决方案 > 如何在 Swift 中显示 IPFS 图像

问题描述

我正在尝试使用 UIImageView 快速显示 IPFS 图像。当我在 xCode/Simulator 中运行我的代码时,图像显示正常。. 当我在通过 USB 连接的 Xcode/我的 iPhone 设备中运行我的代码时。我确实看到了图像

但是当在我的手机上运行应用程序时(在通过 Xcode 安装应用程序之后),IPFS 图像没有显示为 UIImageView - 我做错了什么?

func tableView(_ myTableViewAccount: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell: TableViewCellAccount = myTableViewAccount.dequeueReusableCell(withIdentifier: "aCell") as! TableViewCellAccount
        guard (self.accountsArray.count > 0) else { return cell }
        
        print("accountArray=\(self.accountsArray)  indexPath=\(indexPath.row)")
        let count = self.accountsArray.count
        if (indexPath.row < count) {
            guard (self.accountsArray[indexPath.row].name != nil) else { return cell }
            cell.accountImgView?.frame.size = CGSize(width: 50, height: 50)
            cell.accountImgView.center = view.center
            cell.accountImgView.layer.cornerRadius = 18
            cell.accountImgView?.clipsToBounds = true
            
            let activityIndicator = UIActivityIndicatorView()
            activityIndicator.frame = cell.accountImgView.bounds
            cell.accountImgView.addSubview(activityIndicator)
            activityIndicator.backgroundColor = UIColor.white
            activityIndicator.startAnimating()
          
            let front_img_url = "https://cloudflare-ipfs.com/ipfs/QmYFDgVBMrRfEm5JpVSWeSDAfTUpboEiL8rZyGym24MNVu"
            let frontImageURL = URL(string: front_img_url)
            if frontImageURL != nil {
                DispatchQueue.main.async {
                    let dataProdFrontImg = try? Data(contentsOf: frontImageURL!)

                    if let data_front_img = dataProdFrontImg {  //fromn img
                        activityIndicator.stopAnimating()
                        activityIndicator.removeFromSuperview()
                        
                        let accountImage = UIImage(data: data_front_img)
                        cell.accountImgView.image = accountImage
                    }
                }
            }
        }
        return cell
    }

...单元格表是这样定义的

class TableViewCellAccount: UITableViewCell {
    
    @IBOutlet weak var accountImgView: UIImageView!
    
    override func awakeFromNib() {
        super.awakeFromNib()
    }
    
    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)
    }
}

标签: iosswiftuiimageipfs

解决方案


我改为离开 UIImage View,我使用了

 @IBOutlet weak var accountImgView: WKWebView?

这解决了我的问题


推荐阅读