我正在使用Swift 3.0进行TVOS 10项目,并且正在尝试从控制器访问Assets文件夹中的文件。

我有这个数组:

var posters: [String] = ["image1", "image2", "image3","image4", "image5"]


但我想以编程方式填充此数组。因此,如果我更改资产中的文件,则数组的内容应更改。

因为稍后我这样做:

//currentImage is an ImageView in storyboard
 currentImage.image = UIImage(named: posters[currentPoster])


这是我文件的层次结构。ios - 以编程方式访问Assets文件夹中用于TVOS的文件/文件夹-LMLPHP

这是我尝试过的,但没有给我我想要的。

if let resourcePath = Bundle.main().resourcePath {
        print(resourcePath)
        do {
            let temp = try FileManager.default().contentsOfDirectory(atPath: resourcePath)
            print(temp)
            let assetsPath = resourcePath + "/" + temp[6]
            let temp2 = try FileManager.default().contentsOfDirectory(atPath: assetsPath)
            print (temp2)
        }
        catch let error as NSError {
            print(error)
        }
    }


输出:

/var/containers/Bundle/Application/9AECCDB0-DD5F-4377-9237-6E7DA1E14A39/PosterAppTV.app

[“ Assets.car”,“ Base.lproj”,“ Frameworks”,“ Info.plist”,“ META-INF”,“ PkgInfo”,“ PosterAppTV”,“ _ CodeSignature”,“ embedded.mobileprovision”,“ libswiftRemoteMirror。 dylib“]

错误域= NSCocoaErrorDomain代码= 256“无法打开文件“ PosterAppTV”。 UserInfo = {NSFilePath = / var / containers / Bundle / Application / 9AECCDB0-DD5F-4377-9237-6E7DA1E14A39 / PosterAppTV.app / PosterAppTV,NSUserStringVariant =(
    夹
),NSUnderlyingError = 0x1740524e0 {Error Domain = NSPOSIXErrorDomain Code = 20“ Not a directory”}}

对如何获取Assets / Posters文件夹中文件名称的列表有帮助吗?
此外,如果这不可能,是否还有其他方法可以将一些图片存储到文件夹中,然后以编程方式访问这些文件的名称?

最佳答案

将图像放置在assets中时,这意味着xcode记住了所有图像名称,无需调用任何文件夹名称或目录路径,现在您可以直接在代码中调用图像名称。

这是您要寻找的:

var posters: [String] = ["image1", "image2", "image3","image4", "image5"]

if let myImage = UIImage(named: posters[2]) {
         imageView.image = myImage  //image3 is called at the index of 2 in posters array
   }
 else {
      print("image not found")
 }


或者,您可以像这样在一行中检索图像:

imageView.image = UIImage(named: posters[2])

关于ios - 以编程方式访问Assets文件夹中用于TVOS的文件/文件夹,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38316068/

10-14 22:31
查看更多