来自Swift 3中路径或文件名的UIImage

时间:2017-09-06 09:52:49

标签: ios swift xcode uiimage

我在App的文档目录中有一堆图像。我想在我看来的UIImage中加载其中一个。这就是我所做的:

myImage.image = UIImage(named: "image.jpg") // the file exist but this returns nil

我还尝试使用以下方式初始化图像:

myImage.image = UIImage(contentsOfFile: imagePath) //this also doesn't work but the path i got starts (at least in the sim) with file://

任何人都可以提出建议吗?我有点像iOS编程中的菜鸟。

由于

编辑: imagePath来自:

func getImgPath(name: String) -> String
{
    let documentsDirectory = self.getDocumentsDirectory()
    let fullpath = documentsDirectory.appendingPathComponent(name)
    return fullpath.absoluteString

}

4 个答案:

答案 0 :(得分:4)

这可能会有所帮助

let documentDirectory = FileManager.SearchPathDirectory.documentDirectory
let userDomainMask    = FileManager.SearchPathDomainMask.userDomainMask
let paths             = NSSearchPathForDirectoriesInDomains(documentDirectory, userDomainMask, true)
if let dirPath        = paths.first
{
   let imageURL = URL(fileURLWithPath: dirPath).appendingPathComponent("name.png")
   let image    = UIImage(contentsOfFile: imageURL.path)
   // Do whatever you want with the image
}

答案 1 :(得分:2)

尝试在Assets.xcassets下添加图片。然后,您就可以通过以下方式引用您的图片:

UIImage(named: 'yourImageName')

您可以方便地添加各种尺寸设置的图像。

答案 2 :(得分:0)

您可以将图像的路径视为fowllows:

Panel

如果这不起作用,请检查您的文件名是否正确。

答案 3 :(得分:0)

我了解如果您从互联网上下载图片,则需要将URL转换为UIImage

    if let url = URL(string: "your url") {
        let data = try? Data(contentsOf: url)
        if let imageData = data {
            if let image = UIImage(data: imageData) {
                imageView.image = image
            }
        }
    }

如果我理解你的问题是正确的,那就是答案。