![](/img/trans.png)
[英]Pass an array of images displaying in a UIImage to another different view controller
[英]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.