簡體   English   中英

Swift:如何從UIImage數組中提取圖像文件名

[英]Swift: How to extract image filename from an array of 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: 0x7fe211d2b1a0>

我可以將此輸出轉換為可讀文本,還是有不同的方法從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)

        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM