通过代码从 xcassets 更改图像的内容
Posted
技术标签:
【中文标题】通过代码从 xcassets 更改图像的内容【英文标题】:Change content of image from xcassets through code 【发布时间】: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 建议您不要在启动屏幕中添加任何启动文本/随机图像。 【参考方案1】:看到这个问题后,我搜索了一些类似的问题。比如这个:question
它在 Bundle(.xcassets
资源) 中说你不能向它写入任何文件。所以即使你有它的文档,你也不能写一个URL
的文件。因此,您在保存/写入数据时有两个选择位置:Caches
/ Documents
。
【讨论】:
以上是关于通过代码从 xcassets 更改图像的内容的主要内容,如果未能解决你的问题,请参考以下文章
从 Xcode Swift 中 Assets.xcassets 中的文件夹访问图像
使用“Assets.xcassets”中的图像文件以编程方式更改 iOS 应用程序图标
从 Assets.xcassets 加载图像时 iOS 应用程序崩溃
有没有办法在 Xcode 5 或 Xcode 6 中更改 xcassets 视图的背景颜色?