簡體   English   中英

將背景圖像存儲在userdefaults中

[英]storing background images in userdefaults

我需要能夠為該按鈕設置背景圖像。 我需要存儲此內容,以便在應用關閉后,背景圖像是相同的。

eventsFirstButton.backgroundColor = UIColor(patternImage: UIImage(named: "events")!)

您可以保存狀態:

正確答案:

UserDefaults.standard.set(true, forKey: "TestAnswer1")
//If the answer is incorrect set to false

負載:

 if UserDefaults.standard.bool(forKey: "TestAnswer1") {
      view.backgroundColor = UIColor.green
      // or any other logic
 } else {
      view.backgroundColor = UIColor.red
      // or any other logic
 } 

最好將其另存為base64string ,而不希望將大值存儲到UserDefaults中。

要對UIImage進行編碼,請使用以下代碼:

let image = UIImage()
let data = image.pngData()
let imageBase64String = data?.base64EncodedString()
UserDefaults.standard.set(imageBase64String, forKey: "encodedImage")

對於解碼和檢索UIImage使用以下命令:

if let imageBase64String = UserDefaults.standard.value(forKey: "encodedImage"),
    let url = URL(string: String(format:"data:application/octet-stream;base64,%@",imageBase64String))
{
    do
    {
        let data =  try Data(contentsOf: url) 
        let image = UIImage(data: data)
    }
    catch let error
    {
        print("Error decoding image")    
    }
}

如果您確實需要在本地保存PNG,JPEG圖像,請使用CoreData將它們存儲在設備上。

您可以使用UserDefaults保存圖像

if let image = eventsFirstButton.imageView?.image {
            let imageData = image.pngData()
            UserDefaults.standard.set(imageData, forKey: "imageData")
        }

取回

if let imageData = UserDefaults.standard.data(forKey: "imageData") {
            print("IMG data: ", imageData)
            // your code here
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM