iOS開發小技巧--相機相冊的正確打開方式


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];
}
  • 系統自帶的只能單選,實現多選要用大如圖的庫


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM