我希望我的用户能够在集合视图中查看images.xcassets中的每个图像,但是大约有50个图像,我宁愿不为每个图像手动输入名称。有没有办法可以在不这样做的情况下加载它们?
答案 0 :(得分:1)
根据此post
,这是不可能的不幸的是,无法从任何汽车文件加载图像 除了Xcode编译成你的主要包的那个,如 + imageNamed:不接受bundle参数,这是需要这样做的(即使那样它也只能打开一个 单个资产包中的资产目录。)
但总有一些解决方案(今天我们有2个)。
将images.xcassets
中的所有图片(假设您有20条消息)重命名为0..19,然后使用循环将图像重命名为:
var imageList = [UIImage]()
for i in 0 ..< 20{
imageList.append(UIImage(named: String(i))!)
}
//imageList will hold all your images
或者您可以将图像放在项目文件夹中,并搜索包含已知图像类型的文件,如下所示:
let fm = NSFileManager.defaultManager()
let path = NSBundle.mainBundle().resourcePath!
let items = try! fm.contentsOfDirectoryAtPath(path)
var imageList = [UIImage]()
for item in items {
if item.hasSuffix("png") || item.hasSuffix("jpg") || item.hasSuffix("jpeg") {
imageList.append(UIImage(named: item)!)
}
}
如果您需要更多解释,请与我们联系