有没有办法将images.xcassets中的每个图像加载到一个uicollectionview而无需手动输入图像名称?

时间:2016-04-21 18:03:41

标签: ios swift

我希望我的用户能够在集合视图中查看images.xcassets中的每个图像,但是大约有50个图像,我宁愿不为每个图像手动输入名称。有没有办法可以在不这样做的情况下加载它们?

1 个答案:

答案 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)!)
    }
}

如果您需要更多解释,请与我们联系