The UITableView is actually built upon the UIScrollView.
UIScrollView Class Reference
The way I have used UIScrollView in the past was to programatically add the subviews to the UIScrollView's contentView (such as UILabels, UIImagesViews, etc.) while keeping track of how much vertical space (height) the subviews and spacing between them are taking up. At the end of adding the UIScrollView's subviews you set the UIScollView's content view.
#define kFixedHorizontalSize 320.0
#define kNarutalScreenHeight 416.0
#define kViewSpacing 15.0
...
- (void)repopulateScrollView
{
CGFloat yDrawHeight = 0.0;
//add subviews, track yDrawHeight
//for each sub view do something like
yDrawHeight += [subviewAdded frame].size.height;
yDrawHeight += kViewSpacing;
...
CGSize contentSize = CGSizeMake(kFixedHorizontalSize, yDrawHeight < kNaturalScreenHeight ? kNaturalScreenHeight : yDrawHeight);
[[self scrollView] setContentSize:contentSize];
}
Hope that helps!