English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Préambule : je crois que la plupart d'entre vous savent que la plupart des applications ont des modules de mon module, et que les modules de mon module contiennent généralement des informations telles que les photos de profil de l'utilisateur, et il est possible de changer de photo de profil. Alors, aujourd'hui, je vais vous donner une introduction simple sur la manière d'appeler la caméra système ou l'album photo dans le développement iOS. Pour obtenir la caméra système ou l'album photo, nous devons utiliser la classe UIImagePickerController. Voici comment nous allons le réaliser :
Tout d'abord, il est nécessaire de suivre deux protocoles de l'agent UIImagePickerController : <UIImagePickerControllerDelegate, UINavigationControllerDelegate>. Pourquoi deux protocoles ? En appuyant sur la touche Commande, en cliquant sur le delegate d'UIImagePickerController, vous découvrirez que cet agent suit deux protocoles.
#import "HeaderPhotoViewController.h" @interface HeaderPhotoViewController () <UIImagePickerControllerDelegate, UINavigationControllerDelegate> @property (nonatomic, strong) UIImageView * imageView; @end @implementation HeaderPhotoViewController - (void)viewDidLoad { [super viewDidLoad]; self.navigationItem.title = @"Paramètres de l'avatar"; self.view.backgroundColor = [UIColor whiteColor]; [self setNavigation]; [self addSubviews]; [self makeConstraintsForUI]; } #pragma mark - Définir la navigation - (void)setNavigation { self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:@selector(selectPhoto:)]; } #pragma mark - action de l'élément de navigation - (void)selectPhoto:(UIBarButtonItem *)itemCamera { //Créer un objet UIImagePickerController et définir l'agent et l'édition UIImagePickerController * imagePicker = [[UIImagePickerController alloc] init]; imagePicker.editing = OUI; imagePicker.delegate = self; imagePicker.allowsEditing = YES; //Créer un dialogue de feuille pour indiquer de choisir l'appareil photo ou l'album photo UIAlertController * alert = [UIAlertController alertControllerWithTitle:@"Veuillez choisir le mode d'ouverture" message:nil preferredStyle:UIAlertControllerStyleActionSheet]; //Options de l'appareil photo UIAlertAction * camera = [UIAlertAction actionWithTitle:@"相机" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { //Définir les propriétés associées à l'objet UIImagePickerController lors de la sélection de l'appareil photo imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera; imagePicker.modalPresentationStyle = UIModalPresentationFullScreen; imagePicker.mediaTypes = @[(NSString *); imagePicker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto; //Passer à l'interface contrôlante UIImagePickerController pour afficher l'appareil photo [self presentViewController:imagePicker animated:YES completion:nil]; }] //Options de l'album UIAlertAction * photo = [UIAlertAction actionWithTitle:@"相册" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { //Définir les propriétés associées à l'objet UIImagePickerController lors de la sélection de l'album photo imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; //Passer à l'interface contrôlante UIImagePickerController pour afficher l'album photo [self presentViewController:imagePicker animated:YES completion:nil]; }] //anniu quxiao UIAlertAction * cancel = [UIAlertAction actionWithTitle:@"cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) { [self dismissViewControllerAnimated:YES completion:nil]; }] //tianjia gege anniu shijian [alert addAction:camera]; [alert addAction:photo]; [alert addAction:cancel]; //fenchong chuxian sheet tishi kuang [self presentViewController:alert animated:YES completion:nil]; } #pragma mark - add subviews - (void)addSubviews { [self.view addSubview:self.imageView]; } #pragma mark - make constraints - (void)makeConstraintsForUI { __weak typeof(self)weakSelf = self; [_imageView mas_makeConstraints:^(MASConstraintMaker *make) { make.size.mas_equalTo(CGSizeMake(Screen_Width, Screen_Width)); make.centerX.mas_equalTo(weakSelf.view.mas_centerX); make.centerY.mas_equalTo(weakSelf.view.mas_centerY); }] } #pragma mark - imagePickerController delegate - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info { [picker dismissViewControllerAnimated:YES completion:nil]; //image obtenue UIImage * image = [info valueForKey:UIImagePickerControllerEditedImage]; _imageView.image = image; } #pragma mark - setter and getter - (UIImageView *)imageView { if (!_imageView) { _imageView = [[UIImageView alloc] init]; _imageView.backgroundColor = [UIColor greenColor]; _imageView.contentMode = UIViewContentModeScaleAspectFill; } return _imageView; } @end
OK ! Toutes les codes du demo ont été présentés aux amis, la dernière étape consiste à configurer le fichier plist, ne pas oublier cela, sinon il va s'effondrer. Ajoutez le champ d'appel de la caméra Privacy dans le fichier plist - Description d'utilisation de la caméra et du champ d'appel de l'album : Confidentialité - Description d'utilisation de la bibliothèque Photo. Tout est prêt, il ne manque plus qu'un téléphone portable pour tester, le test de la caméra nécessite un test sur appareil réel.
Voici la totalité du contenu de cet article, j'espère qu'il vous sera utile dans vos études, et j'espère que vous soutiendrez également le tutoriel d'alarme.
Déclaration : le contenu de cet article est issu du réseau, propriété de l'auteur original, contribué et téléversé par les utilisateurs d'Internet, ce site n'acquiert pas de droits de propriété, n'est pas édité par l'homme, ni n'assume la responsabilité des responsabilités juridiques pertinentes. Si vous trouvez du contenu suspect de violation de droits d'auteur, veuillez envoyer un e-mail à : notice#oldtoolbag.com (veuillez remplacer # par @ lors de l'envoi d'un e-mail pour signaler une violation, et fournir des preuves pertinentes. Une fois vérifié, ce site supprimera immédiatement le contenu suspect de violation de droits d'auteur.)