2016-05-10 1 views
4

я в состоянии начать UIImagePickerController сделать картину:UIImagePickerController - Выберите изображения, сохраненные в поле зрения камеры

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) 
    } 
} 

и с этой функцией, чтобы выбрать из сохраненных фотографий:

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

I может выбрать изображение из моей галереи изображений на телефоне или сделать снимок.

Но я хочу выбрать одну из фотографий фото галереи изображений внутри камеры, как это делается в стандартном приложении камеры. Это возможно?

+0

Не получили точку, сохраненные фотографии и сохраненные изображения одно и то же ! o..O –

ответ

3

Если вы хотите, чтобы галерея Pics находилась внутри камеры, вам нужно создать пользовательский режим CameraOverlay, в котором есть кнопка, чтобы открыть сохраненные снимки.

Чтобы сделать это быстрее, вы можете использовать библиотеку как ->https://github.com/GabrielAlva/Cool-iOS-Camera

Или

Вы также можете иметь лист действий, попросив пользователю выбрать, какой вариант он хочет.

Проверить это ->How to allow the user to pick a photo from his camera roll or photo library? & это ->https://github.com/chroman/CRMediaPickerController

-1

Я использую это решение, без дополнительных библиотек. Прежде всего, не забудьте передать делегат, UIImagePickerControllerDelegate и делегат навигации. Эти тики нужны только для imagePickerController.

Обновление, проверьте функцию saveImageViewToAlbum, убедитесь, что ваш imageView содержит изображение, иначе вы, вероятно, поймаете исключение. Добавляет фотографию в альбом сохраненных фотографий. Дополнительный completionSelector должен иметь вид:

- (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) 
    } 
} 
+0

Снова прочитайте вопрос! –

+1

Не приятель, он хочет, чтобы при открытии камеры у него была маленькая кнопка внизу, которая открывает библиотеку фотографий. Проверьте приложение камеры на iPhone. –

+0

Для этого у меня есть функция openAlbum, но я думаю, что я пропустил что-то в вопросе. –