iOS相機相冊的正確打開方式- UIImagePickerController
- 通過指定sourceType來實現打開相冊還是相機
UIImagePickerControllerSourceTypePhotoLibrary, // 相冊庫,范圍比PhotosAlbum要大
UIImagePickerControllerSourceTypeCamera, // 相機
UIImagePickerControllerSourceTypeSavedPhotosAlbum // 相冊
- 打開之前一定判斷設備是否可用
[UIImagePickerController isSourceTypeAvailable:type]
/// 打開相機
- (void)openCamera
{
[self openImagePickerControllerWithType:UIImagePickerControllerSourceTypeCamera];
}
/// 打開相冊
- (void)openAlbum
{
[self openImagePickerControllerWithType:UIImagePickerControllerSourceTypePhotoLibrary];
}
/// 打開ImagePickerController的方法
- (void)openImagePickerControllerWithType:(UIImagePickerControllerSourceType)type
{
// 設備不可用 直接返回
if (![UIImagePickerController isSourceTypeAvailable:type]) return;
UIImagePickerController *imgPicker = [[UIImagePickerController alloc] init];
imgPicker.sourceType = type;
imgPicker.delegate = self;
[self presentViewController:imgPicker animated:YES completion:nil];
}
- 代理方法中,獲取選中圖片
注意:一定記得dismiss
#pragma mark - UINavigationControllerDelegate, UIImagePickerControllerDelegate
// 選擇照片之后
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info
{
// ChaosLog(@"%@",info);
// 獲取用戶選擇的圖片
UIImage *image = info[UIImagePickerControllerOriginalImage];
[self.photosView addPhoto:image];
// 退出imagePickerController
[self dismissViewControllerAnimated:YES completion:nil];
[self.textView becomeFirstResponder];
}
