我正在尝试使用此库进行幻灯片放映

https://github.com/zvonicek/ImageSlideshow

所以我要查询,我带一些图像,然后将它们附加在这里

var sliderArray = [UIImage]()
var testimg:UIImage!

let idaki = recipeObj.objectId
let pointer2 = PFObject(outDataWithClassName:"Recipes", objectId: idaki!)
let galquery = PFQuery(className:"sliderRecipes")
galquery.whereKey("recipe", equalTo: pointer2)
galquery.findObjectsInBackgroundWithBlock {
    (objects: [PFObject]?, error: NSError?) -> Void in


    if error == nil {
        // The find succeeded.
        print("Successfully retrieved \(objects!.count) scores.")
        // Do something with the found objects
        if let objects = objects {
            for object in objects {
                count += 1

                let glrimg = object["sliderImage"] as! PFFile
                glrimg.getDataInBackgroundWithBlock {
                    (imageData3: NSData?, error: NSError?) -> Void in
                    if error == nil {
                        if let imageData2 = imageData3 {
                            self.testimg = UIImage(data:imageData2)
                            print(self.testimg)
                            print(self.sliderArray)
                            self.sliderArray.append(UIImage(data:imageData2)!)




                        }
                        if count == objects.count { print(self.sliderArray) }
                    }
                }



                // print("test")
                // print(self.sliderPinakas)
            }
        }
    } else {
        // Log details of the failure
        print("Error: \(error!) \(error!.userInfo)")
}

毕竟,我没有图像阵列。在上面的打印中,它首先显示empty数组,然后显示我要向滑块显示的UI图像的打印
slideshow.setImageInputs([ImageSource(image: UIImage(named: "myImage"))!, ImageSource(image: UIImage(named: "myImage2"))!])

但是我不必用名字来做,UIImage(named: "myImage"))!我想这样
self.slider.setImageInputs([ImageSource(image: self.testimg)])

对于数组的所有图像,导致上面的行仅显示一个。
有没有人可以帮忙?
谢谢!

最佳答案

您已经传递了所有对象ImageSource self.slider.setImageInputs等的[ImageSource(image: self.testimg1), ImageSource(image: self.testimg2), ...]数组,而不仅仅是一个对象[ImageSource(image:self.testimg)]。

如果添加如下图像:self.slider.setImageInputs([ImageSource(image: self.testimg)])self.slider.setImageInputs([ImageSource(image: self.testimg2)])您只需将第一张图片替换为第二张图片即可。

创建新的数组,从sliderArray枚举所有图像,并将它们附加到数组ImageSource(image:self.testimg1)对象。

还要记住,您必须从glrimg.getDataInBackgroundWithBlock块中调用它!

for之前添加

var count = 0

并添加内部块
count +=1
if count == objects.count {
    print(self.sliderArray)
}.

当所有对象完成加载时,它们将打印数组(它们可以按混沌顺序加载)。

关于ios - 将UI图像从数组追加到幻灯片放映,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38337828/

10-12 00:19
查看更多