问题描述
我正在尝试从Firebase Firestore获取图像URL,并将其保存在数组中。
然后,我想建立一个集合视图,以类似于Instagram的滑动方式(水平)显示数组中的图像。
我正在检索图像url的值并将它们保存在变量中,然后将它们设置在数组中,但是当我设置集合视图时,它不起作用,我相信集合视图函数会接收到带有空值的数组值,因为我正在检索并将它们存储在视图中,因此确实加载了方法
我在做什么错了?
对此有任何帮助吗?谢谢。 这是我的代码:
public var imgArray = [URL]()
var getHeaderURL : URL!
var getHeaderURL2 : URL!
var getHeaderURL3: URL!
var getHeaderURL4: URL!
var headerImgURL:String!
var headerImgURL2:String!
var headerImgURL3:String!
var headerImgURL4:String!
override func viewDidLoad(){
db.collection("Shops").document(getKey!)
.addSnapshotListener { [self] snapshot,error in
if error != nil {
print(error ?? "Couldn't update text field TextUser according to database")
}
else
{
//getting url's as strings
self.headerImgURL = snapshot?["ShopHeaderImg"] as? String
self.headerImgURL2 = snapshot?["ShopHeaderImg2"] as? String
self.headerImgURL3 = snapshot?["ShopHeaderImg3"] as? String
self.headerImgURL4 = snapshot?["ShopHeaderImg4"] as? String
}
//converting url strings into url type.
getHeaderURL = URL(string: self.headerImgURL)
getHeaderURL2 = URL(string: self.headerImgURL2)
getHeaderURL3 = URL(string: self.headerImgURL3)
getHeaderURL4 = URL(string: self.headerImgURL4)
self.imgArray = [getHeaderURL!,getHeaderURL2!,getHeaderURL3!,getHeaderURL4!]
print(imgArray)
}
我的收藏夹视图功能:
func collectionView(_ collectionView: UICollectionView,numberOfItemsInSection section: Int) -> Int {
print(imgArray.count)
print("this is the count of images")
return imgArray.count
}
func collectionView(_ collectionView: UICollectionView,cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = imageCollectionView.dequeueReusableCell(withReuseIdentifier: "imgCell",for: indexPath) as! ImageCellViewController
cell.sliderImage.sd_setShowActivityIndicatorView(true)
cell.sliderImage.sd_setIndicatorStyle(.gray)
cell.sliderImage.sd_setImage(with: imgArray[indexPath.row],placeholderImage: UIImage(named: "Profile_avatar_placeholder_large"))
return cell
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)