我正在使用icarousel来显示我的firebase数据库中的图像。我有五个UIImages
var ImageOne = UIImage()
var ImageTwo = UIImage()
var ImageThree = UIImage()
var ImageFour = UIImage()
var ImageFive = UIImage()
我使用此代码将firebase存储中的所有五个图像都放入我的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 :(得分:1)
有很多异步的东西在进行,我认为您可能在下载图像之前创建(并显示)轮播,而不是使用新图像刷新轮播。 / p>
我要看一下Zero to App(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
}