无法在单元格中获取imageview的下载URL

时间:2017-05-01 16:45:02

标签: ios swift image firebase

我现在遇到问题,我已经将firebase连接到我的应用程序,创建了能够将图像发布到firebase的用户,并循环搜索帖子以找到以下用户来创建提要。只有一个问题,我一直关注制作feed部分的教程,包括一个void = downloadurl(with:String),我找不到这个函数。我已导入相同的模块,应用程序几乎克隆到他的。我很困惑,并希望有人可以帮忙。这是目前的集合视图单元格:

  func collectionView(_ collectionView: UICollectionView, 
  numberOfItemsInSection section: Int) -> Int {
return posts.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt 
indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", 
for: indexPath) as! UserFeedCollectionViewCell

->   cell.myImage. downloadImage(from: String)   <- does not exist, or 
doesn't show up. 
cell.myImage.layer.cornerRadius = 12.0
cell.myImage.clipsToBounds = true

return cell

}

youtube教程就是这个链接:https://youtu.be/fw7ySRFtX_M 在35分钟他会告诉你如何下载细胞图像。我有创建feed的代码,但是这段代码并不重要,我有firebase和uikit导入。 如果可以,请提供任何建议!谢谢(:

2 个答案:

答案 0 :(得分:1)

这不是内置功能或Firebase或iOS固有的任何功能。在视频中,作者提到他在之前的视频中创建了这个功能,所以你应该找到他之前的视频和/或下载最终的项目,看看他做了什么。

(还有很多很棒的第三方库,比如PINRemoteImage,它们为你提供了一些类似的工具 - 你也可以看看其中一个。)

答案 1 :(得分:1)

这是downloadImage功能的代码。它是UIImageView的扩展。扩展名应放在任何类别之外。

class UsersViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
    // deleted to save space
}

extension UIImageView {

    func downloadImage(from imgURL: String!) {
        let url = URLRequest(url: URL(string: imgURL)!)

        let task = URLSession.shared.dataTask(with: url) {
            (data, response, error) in

            if error != nil {
                print(error!)
                return
            }

            DispatchQueue.main.async {
                self.image = UIImage(data: data!)
            }

        }

        task.resume()
    }
}