Suche…


Einführung

UIImagePickerController bietet eine nahezu sofort einsatzbereite Lösung, mit der der Benutzer ein Bild von seinem Gerät auswählen oder mit der Kamera ein Bild aufnehmen und dieses Bild präsentieren kann. Durch die Konformität mit dem UIImagePickerControllerDelegate können Sie eine Logik erstellen, die in Ihrer App angibt, wie das Bild dargestellt werden soll und was damit (mithilfe von didFinishPickingMediaWithInfo) zu tun ist. Außerdem kann festgelegt werden, ob der Benutzer ein Bild auswählen oder ein Bild aufnehmen möchte (mithilfe von imagePickerControllerDidCancel ).

Allgemeine Verwendung von UIImagePickerController

Schritt 1: Erstellen Sie den Controller, legen Sie den Delegaten fest und entsprechen Sie dem Protokoll

//Swift
class ImageUploadViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
    
    let imagePickerController = UIImagePickerController()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        imagePickerController.delegate = self
    }
}

//Objective-C
@interface ImageUploadViewController : UIViewController <UIImagePickerControllerDelegate,UINavigationControllerDelegate> {

    UIImagePickerController *imagePickerController;

}

@end

@implementation ImageUploadViewController

- (void)viewDidLoad {

    [super viewDidLoad];

    imagePickerController.delegate = self;

}

@end

Hinweis: Wir implementieren zwar nichts in UINavigationControllerDelegate definiertes UINavigationControllerDelegate , aber UIImagePickerController erbt von UINavigationController und ändert das Verhalten von UINavigationController . Daher müssen wir noch sagen, dass unser View-Controller mit UINavigationControllerDelegate .

Schritt 2: Wann immer Sie UIImagePickerController :

//Swift
self.imagePickerController.sourceType = .Camera // options: .Camera , .PhotoLibrary , .SavedPhotosAlbum
self.presentViewController(self.imagePickerController, animated: true, completion: nil)

//Objective-C
imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera; // options: UIImagePickerControllerSourceTypeCamera, UIImagePickerControllerSourceTypePhotoLibrary, UIImagePickerControllerSourceTypeSavedPhotosAlbum
[self presentViewController:imagePickerController animated:YES completion:nil];

Schritt 3: Implementieren Sie die Delegatmethoden:

//Swift
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
    if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage {
        // Your have pickedImage now, do your logic here
    }
    self.dismissViewControllerAnimated(true, completion: nil)
}

func imagePickerControllerDidCancel(picker: UIImagePickerController) {
    self.dismissViewControllerAnimated(true, completion: nil)
}

//Objective-C
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

   UIImage *pickedImage = info[UIImagePickerControllerOriginalImage];

    if (pickedImage) {
    
        //You have pickedImage now, do your logic here
    
    }

    [self dismissViewControllerAnimated:YES completion:nil];

}

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {

    [self dismissViewControllerAnimated:YES completion:nil];

}


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow