Swift:如何从UIImage数组中提取图像文件名
如果我有一个像这样的UIImage数组:
newImageArray = [UIImage(named:"Red.png")!, UIImage(named:"Green.png")!, UIImage(named:"Blue.png")!, UIImage(named:"Yellow.png")!]
如何在以后提取或确定某个索引的图像的文件名? 例如:
println("The first image is \(newImageArray[0])")
它不返回可读的文件名,而是返回:
The first image is
我可以将此输出转换为可读文本,还是有不同的方法从UIImage数组中提取文件名?
我一直在环顾四周,因为这对我来说也是一个问题。 UIImage不存储图像的文件名。 我所做的是解决问题而不是图像数组,我使用了一个字典,其中键作为文件名,值作为图像。 在我的for循环中,我将每个项的键和值提取到一个元组中并处理它们。
我不再使用代码,而是快速模拟我在下面看到的内容,(我希望这符合您的要求,因为我知道每个应用程序都不同)
var imageDictionary = ["image1.png": UIImage(named: "image1.png"), "image2.png": UIImage(named: "image2.png")]
然后for循环看起来像:
for (key, value) in imageDictionary { println(key) // Deal with Key println(value) // Deal with Value }
…正如我所说,这对我有用,我需要它的场景,我希望你也可以使用它!
祝你好运!
一旦创建了UIImage
的实例,就会丢失对该名称的所有引用。 例如,当您从文件创建图像时,您执行以下操作:
var image: UIImage = UIImage(named: "image.png")
完成之后,不再有对文件名的引用。 所有数据都存储在UIImage
实例中,无论它来自何处。 正如上面的评论所说,如果必须这样做,你需要设计一种存储名称的方法。
我的方法是从一系列名称开始(因为你不能轻易地回到图像中的名字):
let imageNames = [ "Red.png", "Green.png", "Blue.png", "Yellow.png"]
然后,您可以使用以下方法创建图像数组:
let images = imageNames.map { UIImage(named: $0) }
这是一个非常棘手的问题。 我终于设法让它在Table View Controller中工作。 (Swift 2.1,Xcode 7)
我的图像名称如下所示,在’icons’数组中,扩展名为.png。 我为图像名称创建了一个数组。
var icons = ["BirthdaysImage", "AppointmentsImage", "GroceriesImage","MiscellaneousImage"] override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("iconsReuseIdentifier", forIndexPath: indexPath) //image display iconName = icons[indexPath.row] cell.imageView?.image = UIImage(named: iconName) return cell } override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { //find out which IMAGE got selected var imageSelected = icons[indexPath.row] print(imageSelected) }
- 如何从AVCapture中将图像裁剪到显示屏上显示的矩形
- XCode 7.3.1存档错误:“validation您的构建过程是否已编译二进制文件并在包资源中复制”
- UIBarButtonItem显示为蓝色方块而不是我想要的图像(界面编辑器)
- Xamarin – 在某些构buildconfiguration中包含设置包
- Sprite Kit:更改DidBeginContact中的zRotation
- 将数据从TableViewController传递到XIB文件没有Segues Swift 3
- 如何从iphone照片库中获取照片总数?
- 从NSNumber获取CGFloat的最常见和最正确的做法是什么?
- 用xcodedebugging“无法及时启动”