代码之家  ›  专栏  ›  技术社区  ›  user7863460

在IBOutletCollection中保存图像

  •  0
  • user7863460  · 技术社区  · 7 年前

    以下是我目前的代码:

    @IBOutlet var Boxes: [UIImageView]!
    @IBAction func Success(_ sender: Any) {
        if "" == defaults.value(forKey: "frequency") as? String{
            for box in Boxes{
                if box.image == UIImage(named:"blank.png"){
                    box.image = UIImage(named:"Arm.png")
                    break
                }
            }
        }
        else if "Twice" == defaults.value(forKey: "frequency") as? String{
            for box in Boxes{
                if box.image == UIImage(named:"Arm1.png"){
                    box.image = UIImage(named:"Arm.png")
                    break
                }
                else if box.image == UIImage(named:"blank.png"){
                    box.image = UIImage(named:"Arm1.png")
                    break
                }
            }
            }
    
    }
    

    默认值。值(forKey:frequency)用于确定用户希望更改网格的频率。我该如何创建UserDefaults来恢复应用程序关闭时网格中的图像?(双击home并向上滑动)。UserDefaults是这样做的正确方法吗?我觉得这会更容易,但要为每个UIImageView创建一个单独的出口,并通过一个巨大的代码树保存每个视图的状态,这是一种更简单的方法。非常感谢。

    2 回复  |  直到 7 年前
        1
  •  0
  •   Woof    7 年前

    如果您的图像存储在捆绑包中(由您手动添加且不会更改),您可以将名称保存到userdefaults,而不是保存图像。 Realm . 试试看。此外,为了存储图像,最好将其转换为数据

        2
  •  0
  •   user7863460 user7863460    7 年前

    我设法解决了这个问题。

    我最终遍历了列表,如果我的条件不满足,我会将一个添加到变量(从1开始)以索引列表。如果我更改了条件,我会获取变量并将其添加到userDefault的末尾。如果需要帮助,请添加评论。