无法在swift 2中显示外部资产文件夹中的jpeg

Posted

技术标签:

【中文标题】无法在swift 2中显示外部资产文件夹中的jpeg【英文标题】:Cannot display jpeg from outside asset folder in swift 2 【发布时间】:2015-11-16 08:49:02 【问题描述】:

这可能是我无知的问题,但我只是想显示一个图像......按照下面的代码。

我没有收到任何错误。图像存在,但没有出现在模拟器中。 如果我将路径字符串更改为不存在的图像,则会出现错误,因此我认为它可以正确找到图像。 我错过了什么?

image of view controller

import UIKit

class ViewController: UIViewController 

    @IBOutlet weak var hotspotImage: UIImageView!
    override func viewDidLoad() 
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        let path = "/Users/Mel/Library/Developer/CoreSimulator/Devices/5760868E-BC01-4021-9500-1D4C09FE5106/data/Containers/Data/Application/2E99C508-30E5-4C83-BC72-CBF141A64769/Documents/tours/22/HI2.jpg"
        let image = UIImage(contentsOfFile: path)
        hotspotImage = UIImageView(image: image!)
    


【问题讨论】:

您正在创建 UIImageView 但您没有将其添加到视图层次结构中,因此它不会出现在屏幕上。 HotspotImage 已经是一个 UIImageView,所以你应该将 image 分配给它的 image 属性 这发生在我的应用程序上。在 Objective-C 中,我们可以检索路径并动态显示图像 【参考方案1】:

而不是hotspotImage = UIImageView(image: image!) 尝试hotspotImage.image = image!

【讨论】:

那行得通。 (非常感谢)。你能告诉我我的版本有什么问题吗?【参考方案2】:
    let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
    let getImagePath = paths.stringByAppendingString("filename")
    testingImageView.image = UIImage(contentsOfFile: getImagePath)

【讨论】:

【参考方案3】:

您应该调用并提供文档目录的路径

let path = NSSearchPathForDirectoriesInDomains(
       .DocumentDirectory, .UserDomainMask, true)[0] as NSString
let fileName = NSUserDefaults.standardUserDefaults()
               .stringForKey("HI2.jpg") ?? defaultName
let imagePath = path.stringByAppendingPathComponent(fileName)!
let image = UIImage(contentsOfFile: imagePath )

// display the image
someImageView.image = image

【讨论】:

以上是关于无法在swift 2中显示外部资产文件夹中的jpeg的主要内容,如果未能解决你的问题,请参考以下文章

无法访问 CodeIgniter 资产文件夹中的 CSS 文件,显示 404 错误

如何显示和加载 iOS 应用程序资源/资产文件夹中的音频文件?

访问 tableView SWIFT 中的文本字段

如何更改delphi7中窗体(form)左上角的图标?都支持那些类型的图标,如,ico,jpe?为何更改图标后显示出错呢?不

无法从嵌套组件中的资产文件夹加载图像(Vue.js 2.0 / Webpack)

Android - 将原始资产中的文件保存到外部存储以供其他应用访问,导致找不到内容根异常