代码之家  ›  专栏  ›  技术社区  ›  youareawaitress

正在使用uiimage获取图像的资产目录路径(contentsofile:)

  •  0
  • youareawaitress  · 技术社区  · 5 年前

    将图像从桌面拖动到Xcode中的资产目录时,可以使用以下方法访问项目中的该图像:

    UIImage(named: "somePNG")
    

    但是你如何使用 UIImage(contentsOfFile:) ?

    if let path = Bundle.main.path(forResource: "somePNG", ofType: "png") {
        someImageView.image = UIImage(contentsOfFile: path)
    }
    

    上面的代码不起作用。文件检查器中的图像将添加到目标中。我错过了什么?

    2 回复  |  直到 5 年前
        1
  •  2
  •   matt    5 年前

    你为什么要用 UIImage(contentsOfFile:) 而不是 UIImage(named:) ?原因可能是您希望在不自动缓存的情况下从资产目录加载图像。你不能这样做。(我认为这是资产目录工作方式中的一个主要错误。)你将不得不将图像存储在应用程序包的根级别,就像我们在资产目录存在之前所做的那样。

    如果根据命名约定命名与分辨率相关的文件,例如 我的照片 , MyFiel@ 2x.PNG , MyFiel@ 3x.PNG ,当您使用显示的代码和名称时,就会发生正确的事情。 "myFile.png" .

        2
  •  1
  •   Shehata Gamal    5 年前

    无法通过访问图像 contentsOfFile 如果它存在于 xcassets ,需要将其添加到项目文件中,并启用复制选项。