1.利用UIImagePickeController可以從系統(tǒng)自帶的App(照片,相冊)中獲取圖片
2.設置代理,準守代理協(xié)議
*****注:UIImagePickerController類比較特殊,需要準守兩個代理協(xié)議;
@interface ViewController () <UIImagePickerControllerDelegate, UINavigationControllerDelegate>
3.實現(xiàn)代理的方法
#pragma mark
#pragma mark - imagePicker的 代理方法
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info
<span style="color:#333333;">- (IBAction)photo:(id)sender </span><pre name="code" class="objc">{
// 1.判斷相冊是否可以打開
if (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) return;
// 2. 創(chuàng)建圖片選擇控制器
UIImagePickerController *ipc = [[UIImagePickerController alloc] init];
/**
typedef NS_ENUM(NSInteger, UIImagePickerControllerSourceType) {
UIImagePickerControllerSourceTypePhotoLibrary, // 相冊
UIImagePickerControllerSourceTypeCamera, // 用相機拍攝獲取
UIImagePickerControllerSourceTypeSavedPhotosAlbum // 相簿
}
*/
// 3. 設置打開照片相冊類型(顯示所有相簿)
ipc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
// ipc.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
// 照相機
// ipc.sourceType = UIImagePickerControllerSourceTypeCamera;
// 4.設置代理
ipc.delegate = self;
// 5.modal出這個控制器
[self presentViewController:ipc animated:YES completion:nil];
}
<span style="color:#333333;"></span><pre name="code" class="objc">#pragma mark -- <UIImagePickerControllerDelegate>--
// 獲取圖片后的操作
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info
{
// 銷毀控制器
[picker dismissViewControllerAnimated:YES completion:nil];
// 設置圖片
self.imageView.image = info[UIImagePickerControllerOriginalImage];
}