0

我正在使用icarousel顯示來自我的firebase數據庫的圖像。我有五個UIImages在icarousel中顯示firebase圖像

var ImageOne = UIImage() 
var ImageTwo = UIImage() 
var ImageThree = UIImage() 
var ImageFour = UIImage() 
var ImageFive = UIImage() 

而且我用這個代碼從火力存儲所有五個圖像到我的UIImages

if let stringImage5 = self.imagesFive { 
        AppDelegate.instance().showActivityIndicator() 
        let imageRef = self.storage.reference(forURL: "gs://gsignme-14416.appspot.com/images/\(stringImage5)") 

        imageRef.data(withMaxSize: 25 * 1024 * 1024, completion: { (data, error) -> Void in 
         if error == nil { 
          AppDelegate.instance().dismissActivityIndicator() 
          self.ImageFive = UIImage(data: data!)! 


         }else { 
          print("Error downloading image:") 
         } 



        })} 

現在,我要顯示在icarousel圖像,爲了做到這一點我必須把它們放進一個數組,所以我這樣做:

imageArray = [self.ImageOne, self.ImageTwo, self.ImageThree, self.ImageFour, self.ImageFive] 

現在,這個功能應該顯示所有五個圖片:

func carousel(_ carousel: iCarousel, viewForItemAt index: Int, reusing view: UIView?) -> UIView { 
     var imageView: UIImageView! 

     imageView.image = UIImage(imageArray = [self.ImageOne, self.ImageTwo, self.ImageThree, self.ImageFour, self.ImageFive]) 
     return imageView 

    } 

但是沒有顯示圖像。

回答

0

有很多異步的東西正在進行,我假設你可能在下載圖像之前創建(並顯示)傳送帶,而不是用新圖像刷新傳送帶。

我會看看零到應用程序(video, source),因爲它解釋瞭如何異步填充圖像列表,這基本上是你在做什麼。

而且,不知道iCarousel是如何工作的,但我認爲你viewForItemAt index想要的圖像,而不是一個數組的圖像...

let imageArray = [self.ImageOne, self.ImageTwo, self.ImageThree, self.ImageFour, self.ImageFive] 
func carousel(_ carousel: iCarousel, viewForItemAt index: Int, reusing view: UIView?) -> UIView { 
     var imageView: UIImageView! 
     imageView.image = imageArray[index]; 
     return imageView 
} 
+0

我忘了提,在最高層VAR imageArray變量:[UIImage] = []和imageArray = []在我的viewdidLoad中,所以func傳送帶中的返回imageView沒有返回圖像 – juelizabeth