我需要你的帮助。我需要将相机中的图片保存到 ImageView 中。当我打开应用程序时,图片必须出现在那里,但我不知道它是如何工作的。我是初学者,所以非常感谢您的帮助/提示 :) 谢谢。
更具体地说,我用手机拍了一张照片,照片出现了,但当我关闭应用程序时,它就不再存在了。我应该使用 NSUser 默认值吗???
最佳答案
如果你想保存简单的照片,你可以使用UserDefaults。您需要将图像转换为 NSData,然后才能保存在 UserDefaults 中。这是示例代码。
class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
@IBOutlet weak var imageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
// Load saved image
loadImageFromUserDefaults()
}
private func loadImageFromUserDefaults() {
guard let imageData = UserDefaults.standard.data(forKey: "image_data") as NSData? else {
print("No image saved")
return
}
let image = UIImage(data: imageData as Data)
imageView.image = image
}
private func saveImageToUserDefaults(image: UIImage) {
guard let data = UIImageJPEGRepresentation(image, 1.0) as NSData? else {
print("Failed to convert image")
return
}
UserDefaults.standard.set(data, forKey: "image_data")
UserDefaults.standard.synchronize()
}
@IBAction func selectPhoto(_ sender: Any) {
let imagePickerController = UIImagePickerController()
imagePickerController.sourceType = .photoLibrary
imagePickerController.delegate = self
self.present(imagePickerController, animated: true, completion: nil)
}
// UIImagePickerControllerDelegate
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
if let image = info[UIImagePickerControllerOriginalImage] as? UIImage {
saveImageToUserDefaults(image: image)
loadImageFromUserDefaults()
}
self.dismiss(animated: true, completion: nil)
}
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
picker.dismiss(animated: true, completion: nil)
}
}
关于iphone - 在 Swift 中存储和获取图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43984014/