Zoeken…


Invoering

UIImagePickerController biedt een bijna kant-en-klare oplossing waarmee de gebruiker een afbeelding van zijn apparaat kan selecteren of een foto met de camera kan maken en die afbeelding vervolgens kan presenteren. Door te voldoen aan de UIImagePickerControllerDelegate, kunt u logica maken die in uw app specificeert hoe de afbeelding moet worden gepresenteerd en wat ermee te doen (met didFinishPickingMediaWithInfo) en ook wat te doen als de gebruiker weigert een afbeelding te selecteren of een foto te nemen (met imagePickerControllerDidCancel ).

Algemeen gebruik van UIImagePickerController

Stap 1: Maak de controller, stel de gemachtigde in en conformeer het protocol

//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

opmerking: we zullen in feite niets implementeren dat is gedefinieerd in UINavigationControllerDelegate , maar UIImagePickerController neemt van UINavigationController en wijzigt het gedrag van UINavigationController . Daarom moeten we nog steeds zeggen dat onze UINavigationControllerDelegate voldoet aan UINavigationControllerDelegate .

Stap 2: Wanneer u UIImagePickerController moet tonen:

//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];

Stap 3: Implementeer de gedelegeerde methoden:

//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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow