我正在开发一个快速的应用程序,需要找到一些以特定字符串开头的图像,但是我不知道如何从Assets.xcassets中找到这些图像。
我所有的图像都在Assets.xcassets中
谢谢
答案 0 :(得分:1)
无法以这种方式访问资产文件夹。一种方法是使用计算机上的所有图像创建一个文件夹,然后将其拖到Xcode项目中。不要忘记选择“为任何添加的文件夹创建文件夹引用”选项。使用该引用的文件夹,您可以访问所有图像:
guard let _resourcePath = Bundle.main.resourcePath else{
return
}
do{
if let url = NSURL(string: _resourcePath)?.appendingPathComponent("YOUR FOLDER NAME"){
let resourcesContent = try FileManager().contentsOfDirectory(at: url, includingPropertiesForKeys: nil, options: .skipsHiddenFiles)
for imageUrl in resourcesContent {
let imageName = imageUrl.lastPathComponent
print(imageName)
//CHECK IMAGE NAME STRING
}
}
}catch let error{
print(error.localizedDescription)
}
答案 1 :(得分:0)
首先,您应该使用开头的标识符命名所需的图像。我将以“星”一词为例。
图像应具有star1,star2,star3,star4等名称。该代码应该有效。
var imagesCollected = [UIImage]()
for n in 1 ... 10{ //10 is whatever number you want
let imageloaded = UIImage(named: "star\(n)")
imagesCollected.append(imageloaded)
}
imagesCollected
应该包含所有图像。让我知道是否行得通。
Niall
答案 2 :(得分:0)
您自己知道图像的名称吗?我的意思是是您自己将图像手动加载到Assets.xcassets还是以编程方式添加它们? 如果这样做,则可以创建字典并在每次将图像添加到Assetts.xcassets时以编程方式手动添加或以编程方式添加图像名称。
imageDict = [category:[animalType]]用于2D字典。 如下访问
import UIKit
var NaturePicsDict: [String : [String]] = ["cats":["Lion", "Tiger", "Panther"],
"Birds": ["Hawk", "Parrot", "Sparrow", "Blackbird"]
]
//create an array of animal names for each category and then construct the full image file name from the category:animal using string concatination.
var animalsForCategory:[String] = []
for category in NaturePicsDict.keys {
print("key = \(category) animal =" ,NaturePicsDict[category]!)
let animals = NaturePicsDict[category]!
for animalName in animals {
let imageName: String = "\(category)_\(animalName)"
print("imageName = \(imageName)")
}
}
对不起,所有修改。我正在学习如何使用本网站。无论如何,我的代码段的输出是:
key = cats animal = ["Lion", "Tiger", "Panther"]
imageName = cats_Lion
imageName = cats_Tiger
imageName = cats_Panther
key = Birds animal = ["Hawk", "Parrot", "Sparrow", "Blackbird"]
imageName = Birds_Hawk
imageName = Birds_Parrot
imageName = Birds_Sparrow
imageName = Birds_Blackbird
希望这会有所帮助。我刚刚在正在编写的应用程序中使用3D词典,发现它是一种非常紧凑的存储和访问钻取信息的方式。