如何在iOS中显示多选图像

时间:2014-02-14 07:45:40

标签: ios iphone objective-c

我正在为iPhone制作应用程序,并希望让用户能够从他们的照片库中多选图像。我已经有一个工作代码供用户一次选择四个图像。

但我不能一次选择1或2或3张图像。我想一次选择1或2或3个图像。

这是我的代码。我没有找到解决方案,已经挣扎了3天。请帮助我任何人。

提前致谢.............

-(void)choosePhotoFromExistingImages
{   
    ELCImagePickerController *elcPicker = [[ELCImagePickerController alloc] initImagePicker];   
    elcPicker.maximumImagesCount = 4;   
    elcPicker.returnsOriginalImage = NO; //Only return the fullScreenImage, not the fullResolutionImage 
    elcPicker.imagePickerDelegate = self; 
    [self presentViewController:elcPicker animated:YES completion:nil];   
}

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{    
    [self.navigationController dismissViewControllerAnimated: YES completion: nil];
}

- (void)displayPickerForGroup:(ALAssetsGroup *)group
{   
    ELCAssetTablePicker *tablePicker = [[ELCAssetTablePicker alloc] initWithStyle:UITableViewStylePlain];   
    tablePicker.singleSelection = YES;  
    tablePicker.immediateReturn = YES;    
    ELCImagePickerController *elcPicker = [[ELCImagePickerController alloc] initWithRootViewController:tablePicker];   
    elcPicker.maximumImagesCount = 0;   
    elcPicker.imagePickerDelegate = self;   
    elcPicker.returnsOriginalImage = NO; //Only return the fullScreenImage, not the fullResolutionImage 
    tablePicker.parent = elcPicker;

    // Move me   
    tablePicker.assetGroup = group;
    [tablePicker.assetGroup setAssetsFilter:[ALAssetsFilter allAssets]];
    [self presentViewController:elcPicker animated:YES completion:nil];
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{   
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
    {   
        return YES;
    } 
    else 
    {   
        return toInterfaceOrientation != UIInterfaceOrientationPortraitUpsideDown;
    }
}

#pragma mark ELCImagePickerControllerDelegate Methods

- (void)elcImagePickerController:(ELCImagePickerController *)picker didFinishPickingMediaWithInfo:(NSArray *)info
{    
    [self dismissViewControllerAnimated:YES completion:nil];    
    CGRect workingFrame = _scrollView.frame;    
    workingFrame.origin.x = 0;   
    NSMutableArray *images = [NSMutableArray arrayWithCapacity:[info count]];   
    for (NSDictionary *dict in info) 
    {     
        UIImage *image = [dict objectForKey:UIImagePickerControllerOriginalImage];      
        [images addObject:image];     
        UIImageView *imageview = [[UIImageView alloc] initWithImage:image]; 
        [imageview setContentMode:UIViewContentModeScaleAspectFit];     
        imageview.frame = workingFrame;        
        [self.view addSubview:imageview ];        
        self.chosenImages = images;
    }    
    UIImageView *image1=[[UIImageView alloc]initWithFrame:CGRectMake(10, 240, 40, 40)];    
    image1.image=[images objectAtIndex:0];   
    [self.view addSubview:image1];
    UIImageView *image2=[[UIImageView alloc]initWithFrame:CGRectMake(60, 240, 40, 40)];   
    image2.image=[images objectAtIndex:1];    
    [self.view addSubview:image2];
    UIImageView *image3=[[UIImageView alloc]initWithFrame:CGRectMake(120, 240, 40, 40)];    
    image3.image=[images objectAtIndex:2];    
    [self.view addSubview:image3];    
    UIImageView *image4=[[UIImageView alloc]initWithFrame:CGRectMake(180, 240, 40, 40)];   
    image4.image=[images objectAtIndex:3];   
    [self.view addSubview:image4];  
}

- (void)elcImagePickerControllerDidCancel:(ELCImagePickerController *)picker
{   
    [self dismissViewControllerAnimated:YES completion:nil];
}

2 个答案:

答案 0 :(得分:1)

以下是Tutorial的链接。它在我的项目中工作正常。试试这个

希望它对你有用。

答案 1 :(得分:1)

- (void)elcImagePickerController:(ELCImagePickerController *)picker didFinishPickingMediaWithInfo:(NSArray *)info

中查看您的代码

例如,您创建长度为2的数组,但在下面的代码中,您尝试获取image3.image=[images objectAtIndex:2];image4.image=[images objectAtIndex:3];。您的代码抛出异常并不奇怪。

祝你好运!