Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在Swift中将非静态图像从数组加载到集合视图_Ios_Swift_Firebase_Uicollectionview_Uicollectionviewcell - Fatal编程技术网

Ios 如何在Swift中将非静态图像从数组加载到集合视图

Ios 如何在Swift中将非静态图像从数组加载到集合视图,ios,swift,firebase,uicollectionview,uicollectionviewcell,Ios,Swift,Firebase,Uicollectionview,Uicollectionviewcell,我正在尝试从firebase firestore获取图像URL,并将其保存在数组中 然后我想设置一个集合视图,以类似Instagram(水平)的滑动方式显示阵列中的图像 我正在检索图像url的值,并将它们保存在变量中,然后将它们设置在数组中,但是当我设置集合视图时,它不起作用,我相信集合视图函数会接收带有空值的数组,因为我正在检索并将它们存储在view Dod load方法中 我做错了什么 有什么帮助吗?非常感谢。 这是我的密码: public var imgArray = [URL]() va

我正在尝试从firebase firestore获取图像URL,并将其保存在数组中

然后我想设置一个集合视图,以类似Instagram(水平)的滑动方式显示阵列中的图像

我正在检索图像url的值,并将它们保存在变量中,然后将它们设置在数组中,但是当我设置集合视图时,它不起作用,我相信集合视图函数会接收带有空值的数组,因为我正在检索并将它们存储在view Dod load方法中

我做错了什么

有什么帮助吗?非常感谢。 这是我的密码:

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
}

在您填写的行之后,在集合视图上调用
reloadData()

是否为集合视图设置了数据源?在重新加载集合视图时,还应该调用super.viewDidLoad()?请使用
数组
而不是硬编码变量。@MishaVyrko是的,我做了,但我没有在问题中包括,以使其更易于理解,甚至super.view did load也包括在我的代码中,但忘记了在问题中包括。@Rob当我重新加载collectionview时,它给我一个错误提示“幻灯片图像不符合编码要求”。