Mick Walker
Mick Walker

Reputation: 3847

UIScrollView contentSize Issue

Within my view I create a scrollview with a width of 320 and a height of 70.

Responding to the user touching a button, I expand the scrollview, so it is 380(h) x 320(w) in size.

The code for this is shown below:

CGRect scrollviewFrame = CGRectMake(0, 30, 320, 380);
[scrollView setFrame:scrollviewFrame];
[self layoutScrollImages:YES];
CGSize srect =  CGSizeMake([scrollView bounds].size.width, (kNumImages * kScrollObjHeight));
[scrollView setContentSize:srect];

As I debug this project, I can see that srect is 320 (w) x 8000 (h) in size; however my issue is the scrollable area (where the user can actually touch to scroll the scrollview) remains the same as when it was it's original size.

I'm obviously missing something, does anyone know what it is?

Edit: I have created a sample project to illustrate the issue I am having, it is available here: http://dl.dropbox.com/u/9930498/ScrollViewTest.zip

Upvotes: 5

Views: 4809

Answers (2)

Jhaliya - Praveen Sharma
Jhaliya - Praveen Sharma

Reputation: 31722

I think , you have issue with your below line of code.

CGSize srect =  CGSizeMake([scrollView bounds].size.width, (kNumImages * kScrollObjHeight));
   [scrollView setContentSize:srect];

debug your program and see the content of srect , Also let us know the value of below two constant

kNumImages,kScrollObjHeight .

Upvotes: 2

JNK
JNK

Reputation: 1753

You need to change the contentSize of the scrollview as well as the frame. Maybe this will help aswell: UIScrollView Class Reference

Do this when setting the new size

scrollView.scrollEnabled = YES;
scrollView.showsHorizontalScrollIndicator = YES;
scrollView.showsVerticalScrollIndicator = YES;
[scrollView setFrame:CGRectMake(0, 30, 320, 380)];
CGSize srect =  CGSizeMake([scrollView bounds].size.width, (kNumImages * kScrollObjHeight));
[scrollView setContentSize:srect];
[self layoutScrollImages:YES];

Upvotes: -1

Related Questions