Niranjan G.
Niranjan G.

Reputation: 17

Indefinite width horizontal Scroll view to display images

new to iOS development. I'll explain the core purpose, the app should display an array of images on a horizontally scrolling view, these images will be loaded from the app documents itself. But the number of images stored in the app may vary from user to user. So, I want to create a horizontally scrolling view (UIScrollView/UITableView) which can hold UIImage. I want to change the width of the view as more images are read, but increasing the width of a UIScrollView wouldn't add a UIImage placeholder for the new images. OR Should I try with UITableView, any help would be much appreciated !

Upvotes: 0

Views: 1552

Answers (3)

Yoko
Yoko

Reputation: 803

The best way is to start a UIScrollView, add it to your ViewController and write something like this:

self.scrollView.contentSize = CGSizeMake(self.pictures.count * 170 + 10, self.scrollView.frame.size.height);

Where the 170 for me is the width of the image + 10 (like to have some space between them). The +10 afterwards is 10px after my images too (end of the UIScrollView).

Later, to put on those images you can do

for (int x = 0; x < self.pictures.count; x++) {
        UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"myImage"]];
        imageV.frame = CGRectMake(10 + x * 170, 10, 160, 120);
        [self.scrollView addSubview:imageV];
    }

Replace the imageNamed with your own image name or something like that...

This is only for about max 20 pictures, if you have a lot of pictures then I would suggest using a collection. multiple threads have started about those...

Upvotes: 0

aroragourav
aroragourav

Reputation: 314

You can use icarousel in ios https://github.com/nicklockwood/iCarousel

There are many types to choose from.

Hope that might help you !!!

Upvotes: 0

Paresh Navadiya
Paresh Navadiya

Reputation: 38239

Use UICollectionView instead of UIScrollView.

Check this SO link.

Here using collectView is easy as it has delegate method same as UITableView.

Upvotes: 1

Related Questions