UIImagePickerController的使用



UIImagePickerController的使用

第一步:設置info,開啟權限

@interface ViewController ()<UINavigationControllerDelegate,UIImagePickerControllerDelegate>

@property (weak, nonatomic) IBOutlet UIImageView *imageView;

@end

@implementation ViewController

- (void)viewDidLoad {?

?? [super viewDidLoad]; ? ?

}

- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent *)event{? ??

//1.創(chuàng)建相冊選取器??

? UIImagePickerController *picker = [[UIImagePickerController alloc] init];??

? //2.設置代理 ?UIImagePickerController有兩個協議:UINavigationControllerDelegate? UIImagePickerControllerDelegate ? ?(注意:實現完代理方法一定要釋放picker)


picker.delegate = self; ??

?//3.設置來源 ? ?(注意:相機屬性一定要用真機,模擬器不支持)

/**? ? UIImagePickerControllerSourceTypePhotoLibrary,相冊? (手機相簿)? ? UIImagePickerControllerSourceTypeCamera,相機(模擬器不支持)? ? UIImagePickerControllerSourceTypeSavedPhotosAlbum,相冊(手機照片)? ? */? ? picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;? ?

?//4.允許編輯? ?

?picker.allowsEditing = YES;?

?? //5.彈出相冊選取器??

? [self presentViewController:picker animated:YES completion:nil];

}

#pragma mark -UIImagePickerControllerDelegate/**完成選取的兩個方法為遞進關系 *///2.完成選取? 該方法與下面方法1唯一的區(qū)別就是將編輯之后的圖片image作為參數暴露在外部,而方法二則需要從字典中獲取圖片

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(nullable NSDictionary*)editingInfo{

? ? [picker dismissViewControllerAnimated:YES completion:nil];? ? NSLog(@"%@",editingInfo);? ? NSLog(@"%@",image);}


//1.完成選取- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary*)info{

[picker dismissViewControllerAnimated:YES completion:nil];

//? ? info中包括選取的照?片,視頻的主要信息

//? ? NSString *const UIImagePickerControllerMediaType; 選取的類型 public.image public.movie

//? ? NSString *const UIImagePickerControllerOriginalImage; 修改前 的UIImage object.

//? ? NSString *const UIImagePickerControllerEditedImage; 修改后 的UIImage object.

//? ? NSString *const UIImagePickerControllerCropRect; 原始圖 ?片的尺?寸NSValue object containing a CGRect data type

//? ? NSString *const UIImagePickerControllerMediaURL; 視頻在?文件系統中 的 NSURL地址

//? ? 保存視 頻主要時通過獲取其NSURL 然后轉換成NSData

UIImage *image = info[UIImagePickerControllerEditedImage];

self.imageView.image = image;

NSLog(@"%@",info);

}

//取消選取

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

[picker dismissViewControllerAnimated:YES completion:nil];

}

@end


GitHub 鏈接地:?https://github.com/KeithBigBather666/UIImagePickerController-.git

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容