SonnyBurnette
SonnyBurnette

Reputation: 680

Scrolling view like app details screen

I am trying to figure out the best way to create a view like the app details screen in the AppStore app. I want a thumbnail and text content under it that all scrolls if the content is too long. Is this done in a tableview or a scrollview?

Upvotes: 0

Views: 470

Answers (1)

nevan king
nevan king

Reputation: 113757

I've made one in a scrollview. I calculated the size of each element's frame from this method:

- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode

I kept a running total of the y size by adding it on after each label. At the end, if the scroll view was over a certain size (the length of my page) I gave that size to the scroll view, adding a little on the end so it wouldn't bump against the bottom.

Here's some code:

int currentYPos;
CGSize maximumSize = CGSizeMake(300, 9999);
[scrollView setCanCancelContentTouches:NO];
scrollView.indicatorStyle = UIScrollViewIndicatorStyleDefault;
scrollView.clipsToBounds = YES;
scrollView.scrollEnabled = YES;

scrollView.pagingEnabled = NO;

// set the title frame size
self.titleLabel.text = self.title;

CGSize titleSize = [self.titleLabel.text sizeWithFont:self.titleLabel.font 
      constrainedToSize:maximumSize 
    lineBreakMode:self.titleLabel.lineBreakMode];

currentYPos = titleSize.height + 20;

CGRect titleFrame = CGRectMake(10, 0, 300, currentYPos);
self.titleLabel.frame = titleFrame;

Note that many of the titleLabel properties were set on a label in IB.

Upvotes: 3

Related Questions