我现在遇到问题,我已经将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导入。 如果可以,请提供任何建议!谢谢(:
答案 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()
}
}