【问题标题】:Change content of image from xcassets through code通过代码从 xcassets 更改图像的内容
【发布时间】:2021-01-18 16:25:25
【问题描述】:

我正在尝试从 xcassets 更新图像的内容(通过代码,因为我应该下载新图像) 我需要这个,所以我可以尝试动态更新初始屏幕图像和主页图像(两者都从 xcassets 中的同一个文件中引用)。 这是因为闪屏只能引用本地存在的图像。

我尝试了以下方法,但它不起作用。任何帮助表示赞赏。

    var urlString = Bundle.main.resourcePath
    
    let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
    let filename = URL(fileURLWithPath: urlString!)
    let fileURL = filename.appendingPathComponent("image_splashscreen@3x.png")
    if let pngImageData = image.pngData() {
    try! pngImageData.write(to: fileURL, options: .atomic)

还有:

    var documentsUrlw: URL {
        return FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
    }

    let fileName = "image_splashscreen@3x"
    let fileURL = documentsUrl.appendingPathComponent(fileName)
    if let imageData = image.jpegData(compressionQuality: 1.0) {
       try? imageData.write(to: fileURL, options: .atomic)
       return fileName // ----> Save fileName
    }

在这两种情况下,图像都不会更新。

【问题讨论】:

  • 我认为 Apple 建议您不要在启动屏幕中添加任何启动文本/随机图像。

标签: swift url uiimage splash-screen dynamic-splash-screen


【解决方案1】:

看到这个问题后,我搜索了一些类似的问题。比如这个:question

它在 Bundle(.xcassets 资源) 中说你不能向它写入任何文件。所以即使你有它的文档,你也不能写一个URL 的文件。因此,您在保存/写入数据时有两个选择位置:Caches / Documents

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 2021-08-06
    • 1970-01-01
    • 1970-01-01
    • 2012-10-12
    相关资源
    最近更新 更多