繁体   English   中英

如何将图像数组传递到另一个视图?

[英]How to pass array of images over to another view?

我有一个CollectionView大约有12张图像。 当我点击图像时,它应该在下一个屏幕上显示该图像。 问题在于,在我点击该特定图像后,它必须在其余11张图像中进行动画处理。 我将如何去做? 我有通过图像数组进行动画处理的代码,我只是不知道如何显示我点击的特定图像,然后开始通过数组进行动画处理。

这是我的示例代码!

func convertUrlsToImage() {
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {
        for urls in self.arrayOfImageUrlsFromOtherView {
            if let url = NSURL(string: urls) {
                if let data = NSData(contentsOfURL: url) {
                    if let hingeImage = UIImage(data: data) {
                        self.convertedURLToImages.append(hingeImage)

                        dispatch_async(dispatch_get_main_queue(), { 
                            if self.galleryImageView.image == nil {
                                self.galleryImageView.image = self.convertedURLToImages[0]
                            }else{
                                print("Not empty")
                            }
                        })
                    }
                }
            }
        }
    })
}

func animateThroughArrayOfImages() {
    let currentIndex =  convertedURLToImages.indexOf(galleryImageView.image!)
    let nextIndex  = (currentIndex! + 1) % self.convertedURLToImages.count

    self.title = "\(nextIndex+1)"  + "/\(convertedURLToImages.count)"
    self.galleryImageView.image  = self.convertedURLToImages[nextIndex]
}

//附加代码

override func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {

    if let cell = collectionView.cellForItemAtIndexPath(indexPath) {

        performSegueWithIdentifier("nextView", sender: cell)

    }else{
        print("no good")
    }
}







override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {





    if let indexPath = self.collectionView?.indexPathForCell(sender as! ImageCollectionViewCell) {

        if segue.identifier == "nextView" {

            let galleryViewController = segue.destinationViewController as! GalleryViewController


           //We are passing the url to the next screen then making another request to show them
           let imageUrl = hingeImagesArray[indexPath.row]


            //passesd a single image url
            galleryViewController.imageUrlFromOtherScreen = imageUrl.imageUrl






            //Pasing array of urls 
            galleryViewController.arrayOfImageUrlsFromOtherView = hingeImageUrls

            //let myIndex = testImageArray[indexPath.row]








        }


    }

}

您的任务看起来非常简单。 只需为collectionView实现此委托

optional func collectionView(_ collectionView: UICollectionView,
didSelectItemAtIndexPath indexPath: NSIndexPath)

然后从indexPath获取图像索引。 然后,您可以将带有urls数组的索引传递到下一个屏幕,并使用它来设置初始图像。

但是无论如何,将所有图像存储在一个内存阵列中并不是一个好主意。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM