我正在开发应用程序以在 scrollViews 中处理分页照片,就像在照片应用程序中向右滑动以获取旧照片并向左滑动以获取新照片,直到照片结束。
好吧,我正在从网上获取多维照片:
imageArray[indexPath.row][0] as? String
在 ViewController1
中显示 CollectionView 中的所有图像。
当用户按下照片时,我会继续并在 ViewController2
中显示更大的图像,因此如果向左滑动它会显示新照片,向右滑动会显示存储在数组中的旧照片。
但我需要将我的二维数组转换为一维数组并动态地使用它成为这样的东西:
pageImages = [UIImage(named:"photo1.png")!,
UIImage(named:"photo2.png")!,
UIImage(named:"photo3.png")!,
UIImage(named:"photo4.png")!,
UIImage(named:"photo5.png")!]
这怎么可能?
我可以这样说:
pageImages = [UIimage(named:thewholearray)]
?
我首先尝试转换为一维数组,但我失败了:
var imageArray : NSArray = []
var mybigarray : NSArray = []
for (var i=0; i<=self.imageArray.count; i++) {
self.mybigarray = self.imageArray[i][0] as! NSArray
}
产生这个转换错误:
Could not cast value of type '__NSCFString' (0x196806958) to 'NSArray' (0x196807308).
最佳答案
您可以使用映射函数从多维数组中提取图像名称。
var imageNames:[String] = imageArray.map({
$0[0] as! String
})
map 函数像 for-in-loop 一样遍历所有数组条目。 闭包中的语句确定 imageNames 数组的新条目。
编辑:
如果你不使用 Swift-Arrays:
var imageNames:NSMutableArray = []
for image in imageArray{
imageNames.addObject(image[0] as! String)
}
关于ios - 动态使用多维数组作为 UIImage 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31786289/