UIImagePickerController - selecting saved images in camera view

I can run UIImagePickerControllerto take a picture:

func selectCamera(){
    if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.Camera) {
        let imagePicker = UIImagePickerController()
        imagePicker.delegate = self
        imagePicker.sourceType = UIImagePickerControllerSourceType.Camera;
        imagePicker.allowsEditing = true
        self.presentViewController(imagePicker, animated: true, completion: nil)
    }
}

and with this function select from saved images:

func selectPicture() {
    let picker = UIImagePickerController()
    picker.allowsEditing = true
    picker.delegate = self
    presentViewController(picker, animated: true, completion: nil)
}

I can either select an image from the image gallery on the phone, or take a picture.

But I want to select one of the photos with gallery photos in the camera window, as is done in the standard camera application. Is it possible?

+4
source share
2 answers

If you want the Pics gallery to be inside the camera, you need to create a custom CameraOverlay view that has a button for opening saved images.

, → https://github.com/GabrielAlva/Cool-iOS-Camera

, , .

-? & ; → https://github.com/chroman/CRMediaPickerController

+3

. , , UIImagePickerControllerDelegate . imagePickerController.

, saveImageViewToAlbum, , imageView , , , . . :

- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo;

, , iOS 9.3

    import UIKit

    class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {

    @IBOutlet weak var choosenImageView: UIImageView!
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    @IBAction func openAlbum(sender: UIButton) {
        let imagePickerController = UIImagePickerController()
        imagePickerController.delegate = self
        imagePickerController.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
        self .presentViewController(imagePickerController, animated: true, completion: nil)

    }
    func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : AnyObject]?) {

        choosenImageView.image = image
        self .dismissViewControllerAnimated(true, completion: nil)
    } 
@IBAction func saveImageViewToAlbum(sender: UIButton) {
                UIImageWriteToSavedPhotosAlbum(choosenImageView.image!, nil, nil, nil)
    }
}
-1

All Articles