ios - 动态使用多维数组作为 UIImage 数组

标签 ios arrays swift uiimage

我正在开发应用程序以在 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/

相关文章:

ios - 无法为UILabel设置下划线

ios - 表格 View 单元格中的阴影层越界

ios - 如何在 Swift 中验证 X509Certificate?

Java创建新对象

ios - 我可以创建一个我所有的 View Controller 都可以访问的类吗

ios - 如何在 Swift 中处理 NSUserDefaults 中的非可选值

java - 重复用户输入,同时将其添加到数组列表

ios - UINavigationItem 图像始终居中

ios - 创建可滚动的 UIView 时遇到问题(swift + Interface Builder)

java - 如何找到从唯一数组索引提取的数组中数字的最大可能总和