【问题标题】:Display firebase images in icarousel在 icarousel 中显示 Firebase 图像
【发布时间】:2017-09-28 14:14:07
【问题描述】:

我正在使用 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

    }

但没有显示图像。

【问题讨论】:

    标签: xcode firebase firebase-realtime-database firebase-storage icarousel


    【解决方案1】:

    发生了很多异步操作,我假设您可能是在下载图像之前创建(和显示)轮播,而不是用新图像刷新轮播。

    我会看看 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
    }
    

    【讨论】:

    • 我忘了提到最顶部的变量 var imageArray: [UIImage] = [] 和 imageArray = [] 在我的 viewdidLoad 中,所以 func carousel 中的返回 imageView 没有返回一张图片
    猜你喜欢
    • 2017-11-11
    • 2017-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多