2013-02-05 143 views
1

我已經使用Imagepickerview控制器來選擇照片並使用imageview在uiview中顯示它,但我的問題是使用imageview只有一個圖像可以顯示兩個。 它繼續取代現有的,如果我選擇第二個。請給出一些建議如何顯示兩張照片。如何使用imageview在iphone中顯示相冊照片

here is my source code. 


-(void) ViewDidLoad 
{ 
     attachPhotoBtn = [UIButton buttonWithType:UIButtonTypeCustom]; 
    attachPhotoBtn.frame = CGRectMake(400, 125, 44, 44); 
    UIImage *attachImg = [UIImage imageNamed:@"album_add_off.png"]; 
    [attachPhotoBtn setImage:attachImg forState:UIControlStateNormal]; 
    [attachPhotoBtn addTarget:self action:@selector(attachPhoto:) forControlEvents:UIControlEventTouchUpInside]; 
    [self.view addSubview:attachPhotoBtn]; 

    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
    { 
     imageView = [[UIImageView alloc] initWithFrame:CGRectMake(50, 125, 64, 52)]; 
//  imageView.backgroundColor = [UIColor greenColor]; 
     [self.view addSubview:imageView]; 
    } 

} 


- (IBAction)attachPhoto:(id)sender { 

    [sender setImage:[UIImage imageNamed:@"album_add.png"] forState:UIControlStateNormal]; 

    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeSavedPhotosAlbum]) 
    { 
     UIImagePickerController *imagePicker =[[UIImagePickerController alloc] init]; 
     imagePicker.delegate = self; 
     imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
     imagePicker.mediaTypes = [NSArray arrayWithObjects:(NSString *) kUTTypeImage,(NSString *)kUTTypeVideo,nil]; 
     imagePicker.allowsEditing = NO; 

     // On iPad use pop-overs. 
     if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
     { 
      _popover = [[UIPopoverController alloc] initWithContentViewController:imagePicker]; 
      [_popover presentPopoverFromRect:attachPhotoBtn.frame 
              inView:self.view 
         permittedArrowDirections:UIPopoverArrowDirectionUp 
             animated:YES]; 
      } 
     } 
     else 
     { 
      // On iPhone use full screen presentation. 

      // [[self presentingViewController] presentViewController:imagePicker animated:YES completion:nil]; 
     } 


     newMedia = NO; 
    } 


#pragma mark Image picker controller delegate methods 

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 

    NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType]; 

// [self dismissModalViewControllerAnimated:YES]; 


    if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) { 

     UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage]; 
     imageView.image = image; 



    [picker dismissViewControllerAnimated:NO completion:nil]; 
} 
+1

粘貼實際的代碼。帶有大寫字母「V」的ViewDidLoad並不真實。 – 2013-02-05 06:58:47

+0

通過這篇文章 - http://stackoverflow.com/questions/1291270/select-multiple-images-uiimagepickercontroller-or-photos-app-share-ui –

+0

替換此行imageView.image = image;到[imageView setImage:image];試試這個,並告訴我它的工作與否:) – Rushabh

回答

2

您使用的是單一的UIImageView組件顯示圖像,每次你會挑這將是由最新一期所覆蓋的圖像..

有顯示多個圖像的多種方式。

  1. 您可以動態創建的UIImageView成分,當你在(無效)imagePickerController得到的圖像:(*的UIImagePickerController)選擇器didFinishPickingMediaWithInfo:(NSDictionary的*)信息功能..

  2. 您可以使用一個的NSMutableArray把所有的圖像,並可以顯示在UITableView。

  3. 或者,您可以在ScrollView中添加圖像瀏覽。

但最終你會需要多個UIImageView組件來顯示多個圖像,而不是一個。

希望這會有所幫助。

0

可以使用入資產庫得到的照片庫中的所有圖像,

1.添加AssetsLibrary.framework

2#進口 「AssetsLibrary/AssetsLibrary.h」

3.獲得所有結果

這裏是代碼

void (^myAssetEnumerator)(ALAsset *, NSUInteger, BOOL *) = ^(ALAsset *result, NSUInteger index, BOOL *stop) { 
     if(result != NULL) 
     { 
      NSLog(@"See Asset: %@", result); 

      if ([[result valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypePhoto]) 
      { 
       [assetsArray addObject:result]; 
      } 
     } 
    }; 

    //This block of code used to enumerate ALAssetsGroup. 
    void (^myAssetGroupEnumerator)(ALAssetsGroup *, BOOL *) = ^(ALAssetsGroup *group, BOOL *stop) { 
     if(group != nil) { 
      [group enumerateAssetsUsingBlock:myAssetEnumerator]; 

      [self createScrollView];//Or you can use your `assetsArray` data, in UITableView,UICollectionView 

     } 
     //[activity stopAnimating]; 
     // [activity setHidden:YES]; 
    }; 

    library = [[ALAssetsLibrary alloc] init]; 

    [library enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos 
          usingBlock:myAssetGroupEnumerator 
         failureBlock: ^(NSError *error) { 
          NSLog(@"Failure"); 
         } 
    ]; 

4.獲取縮略圖

ALAsset *asset=[assetsArray objectAtIndex:i]; 
UIImage*image = [UIImage imageWithCGImage:[asset thumbnail]]; 
相關問題