Hamza Imran
Hamza Imran

Reputation: 189

Show multiple images in an Image View in IOS

I'm using ELCImagePickerController in my project. Select multiple images from the gallery through it. I'm facing an issue that , how i can show the selected multiple images in an image view in a view controller. I have created a select image button which take us to photolibrary where we select multiple images.My code is,

- (IBAction)Select:(id)sender {
    ELCImagePickerController *elcPicker = [[ELCImagePickerController alloc] initImagePicker];
    elcPicker.maximumImagesCount = 100; //Set the maximum number of images to select to 100
    elcPicker.returnsOriginalImage = YES; //Only return the fullScreenImage, not the fullResolutionImage
    elcPicker.returnsImage = YES; //Return UIimage if YES. If NO, only return asset location information
    elcPicker.onOrder = YES; //For multiple image selection, display and return  order of selected images
    // elcPicker.mediaTypes = @[(NSString *)kUTTypeImage, (NSString 

    *)kUTTypeMovie]; //Supports image and movie types

    elcPicker.imagePickerDelegate = self;

    [self presentViewController:elcPicker animated:YES completion:nil];

    }


    - (void)elcImagePickerController:(ELCImagePickerController *)picker 

    didFinishPickingMediaWithInfo:(NSArray *)info
    {
    [self dismissViewControllerAnimated:YES completion:nil];

    for (NSDictionary *dict in info)
    {
        if ([dict objectForKey:UIImagePickerControllerMediaType] == 
    ALAssetTypePhoto)
        {
            if ([dict objectForKey:UIImagePickerControllerOriginalImage])

            {
                UIImage* image=[dict 
    objectForKey:UIImagePickerControllerOriginalImage];

                 _arrimage.image;
            }
        }
    }

    }

    - (void)elcImagePickerControllerDidCancel:(ELCImagePickerController *)picker
    {

    [self dismissViewControllerAnimated:YES completion:nil];
}

Upvotes: 1

Views: 1589

Answers (3)

Megha_Singh
Megha_Singh

Reputation: 100

You can't Show Multiple Images in a single ImageView at a same time but yes you can show multiple images on a same ImageView for sometime using Image Animation.

var imagesArray = [UIImage]()

for imageName in 1...3
{
    imagesArray.append(UIImage(named: "\(imageName).png")!)
}

// You can also use below code to add images if not want to use loop    
// imagesArray.append(UIImage(named: "a.png")!)
// imagesArray.append(UIImage(named: "b.png")!)
// imagesArray.append(UIImage(named: "c.png")!)

self.imageView.animationImages = imagesArray
self.imageView.animationDuration = 2.0
self.imageView.startAnimating()

Upvotes: 0

Ajith Tom
Ajith Tom

Reputation: 31

First of all an Image View is to show a single image. From the piece of code you shared I am not clear what did you mean by

 UIImage* image=[dict 
objectForKey:UIImagePickerControllerOriginalImage];

             _arrimage.image;

What does this _arrimage mean? Is that a reference to the Image view? then it should be

_arrimage.image = image; //the image fetched in the above line

But this won't fix your issue as this will show only the very last object found in the for loop (probably the last selected image).

To show all selected images it is better to go with a collection view with the array of images as the data source and load each images in each cells of the collection view.

If you want to show all images within the same image view, there is another option by setting it as animationimages

imageView.animationImages = imagesListArray //the list of image you selected
imageView.animationDuration = 2.0
imageView.startAnimating()

This just show each images one at a time from the array with a time interval of 2 seconds

Upvotes: 0

Nirmalsinh Rathod
Nirmalsinh Rathod

Reputation: 5186

You can use CreolePhotoSelection to get and select multiple images. It will help to you gets multiple selection and retrieve all selected value into delegate method.

Below is the sample code for it:

CreolePhotoSelection *objCreolePhotoSelection= [[CreolePhotoSelection alloc] initWithNibName:@"CreolePhotoSelection" bundle:nil];
objCreolePhotoSelection.strTitle = YOUR_TITLE_FOR_PHOTO_VIEW;
objCreolePhotoSelection.delegate = self; // It will help to retrive all selected photos from CreolePhotoSelection
objCreolePhotoSelection.arySelectedPhoto = YOUR_CURRENT_ARRAY; // You need to pass same array which is holding selected image
objCreolePhotoSelection.maxCount = YOUR_MAX_PHOTOS_LIMIT; // Eg. 5, 10 anythings...

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:objCreolePhotoSelection];
[self.navigationController presentViewController:navController animated:YES completion:nil];

// Delegate Method
#pragma mark - Photo selected Delegate Method
-(void)getSelectedPhoto:(NSMutableArray *)aryPhoto
{
  // You will selected image array into aryPhoto object and you can use it
}   

Upvotes: 1

Related Questions