如何在照片库Swift中保存图片?

Dak*_*ata 1 camera save swift

我是Swift初学者,刚刚在我的应用程序中完成了我的照相机功能.我现在遇到的问题是,当我从相机拍摄照片时,它不会保存到我的iPhone上的照片库中.一切都很完美,我可以拍照,但是当我查看照片时,似乎没有保存.我检查了类似的问题,但我没有找到正确的答案,我发现他们是添加按钮直接访问照片库的人,但我不需要这样的按钮.唯一的功能,我需要拍照,当用户点击选择照片将其保存在照片中.

到目前为止我用过这个:

class ViewController: UIViewController, UIImagePickerControllerDelegate,UINavigationControllerDelegate{



 let imagePicker: UIImagePickerController! = UIImagePickerController()

   override func viewDidLoad() {

    super.viewDidLoad()

    imagePicker.delegate = self

    let upSwipe = UISwipeGestureRecognizer(target: self, action: #selector(handleSwipes))

    upSwipe.direction = .up

    view.addGestureRecognizer(upSwipe)

}
Run Code Online (Sandbox Code Playgroud)

和功能:

func handleSwipes(sender:UISwipeGestureRecognizer) {

        if (sender.direction == .up){

            if ( UIImagePickerController.isSourceTypeAvailable(.camera)){



                if UIImagePickerController.availableCaptureModes(for: .rear) != nil {
                    imagePicker.allowsEditing = false
                    imagePicker.sourceType = .camera
                    imagePicker.cameraCaptureMode = .photo
                    present(imagePicker,animated: true, completion: {})
       }
            }
Run Code Online (Sandbox Code Playgroud)

以下是我在iPhone上的内容:我只想在用户选择使用照片时将照片本身保存在图库中,就像这样简单. 在此输入图像描述

Jua*_*rti 7

在此之前,您需要将"隐私 - 照片库添加使用说明"添加到您的info.plist,否则您的应用程序将崩溃

用这个:

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
        if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage{
            UIImageWriteToSavedPhotosAlbum(pickedImage, self, #selector(image(_:didFinishSavingWithError:contextInfo:)), nil)

            dismiss(animated: true, completion: nil)
        }
    }
Run Code Online (Sandbox Code Playgroud)

然后,添加以下函数(与saltTigerK编写的函数相同)

func image(_ image: UIImage, didFinishSavingWithError error: Error?, contextInfo: UnsafeRawPointer) {
    if let error = error {
        // we got back an error!
        let ac = UIAlertController(title: "Save error", message: error.localizedDescription, preferredStyle: .alert)
        ac.addAction(UIAlertAction(title: "OK", style: .default))
        present(ac, animated: true)
    } else {
        let ac = UIAlertController(title: "Saved!", message: "Your altered image has been saved to your photos.", preferredStyle: .alert)
        ac.addAction(UIAlertAction(title: "OK", style: .default))
        present(ac, animated: true)
    }
}
Run Code Online (Sandbox Code Playgroud)

资料来源:https://www.hackingwithswift.com/read/13/5/saving-to-the-ios-photo-library