2012-10-26 91 views
2

我想簡單地使使用的UIImagePickerController從photolibrary挑選多張圖像,我希望我可以在照片選擇器的底部添加一個子視圖所以它看起來像這樣的應用功能:的UIImagePickerController選擇多個圖片

它有一個簡單的方法你可以做到這一點?我的代碼目前只是以標準方式彈出圖像,但我只在加載時關閉控制器6圖像

重要的是,如果有的話,我可以添加一個小視圖/工具欄到照片選擇器視圖,沒有,然後我可以做其他

Example Looking - With the custom toolbar in the bottom

- (void)getMediaFromSource:(UIImagePickerControllerSourceType)sourceType{ 
     //get all available source types 
     NSArray *mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:sourceType]; 

     //if source type available and supported media type is not null 
     if ([UIImagePickerController isSourceTypeAvailable:sourceType 
      && [mediaTypes count] > 0]) { 

     UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 
     //picker.mediaTypes = mediaTypes; //allow videos 
     picker.delegate = self; 
     picker.sourceType = sourceType; //set source type to the given type 

     /** WANT TO ADD A CUSTOM VIEW IN THE PHOTO PICKER VIEW **/ 

     [self presentViewController:picker animated:YES completion:nil]; 
     } else { 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error accessing media" 
                 message:@"Device doesn't support that media type" 
                 delegate:nil 
               cancelButtonTitle:@"Drat !" 
               otherButtonTitles: nil]; 
     [alert show]; 
     } 
    } 

    - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{ 
     self.lastChosenMediaType = [info objectForKey:UIImagePickerControllerMediaType]; //record media type 

     //if media type is image 
     if ([lastChosenMediaType isEqual:(NSString *) kUTTypeImage]) { 
     UIImage *chosenImage = [info objectForKey:UIImagePickerControllerOriginalImage]; //load image 

     //save the image if is from camera shot 
     if (imageOrVideoSourceType == UIImagePickerControllerSourceTypeCamera) { 
      UIImageWriteToSavedPhotosAlbum (chosenImage, nil, nil , nil); 
     } 

     [images addObject:chosenImage]; //add to image list 
     imageNum++; 
     } 

     changeImageOrVideo = true; 

     if(imageNum >= 5){ 
      [picker dismissViewControllerAnimated:YES completion:nil]; 
     } 
    } 
+0

查看資產庫。 http://developer.apple.com/library/ios/#documentation/AssetsLibrary/Reference/ALAssetsLibrary_Class/Reference/Reference.html – iDev

+0

你會有點更詳細?我在看圖書館,但我想我需要一些提示(以前從未使用過) – phil88530

+0

關於資產庫的一些教程是http://www.icodeblog.com/2010/07/08/asset-libraries-and -blocks-in-ios-4 /或http://www.touch-code-magazine.com/ios5-saving-photos-in-custom-photo-album-category-for-download/你也可以查看這個習慣uiimagepicker實現http://www.icodeblog.com/2011/03/03/update-elcimagepickercontroller/ – iDev

回答

4

的主要原因是使用黑客像了移位的UIImagePickerController並且選擇顯示圖片下方是因爲資產庫的替代將涉及被要求提供用戶升由於在圖像元數據中有關拍攝照片的位置的信息而導致的訪問。

在iOS 6中,系統詢問用戶是否允許該應用訪問他們的照片(而不是位置),並針對資產庫方法和UIImagePickerController方法詢問此問題。

因此,我認爲像上面這樣的黑客已經接近他們的用處了。 Here is a link to a library providing selection of multiple images using the Assets library還有其他的。

+0

我現在使用這個。試圖瞭解如何編寫我自己的自定義選擇器(我希望能夠合併相機視圖,因此在相機​​視圖中,您可以切換到照片採集視圖,並且如果您拍攝照片,則會切換回照片選擇器視圖與所選圖像 – phil88530

+0

關於如何使用資產庫創建自定義拾取器沒有一些好的教程,但該示例支持ARC,並且可以稍微修改以適應大多數的purpur – phil88530

相關問題