如何将UITableView嵌入到UIScrollView中?

时间:2011-08-07 05:38:07

标签: iphone ipad

我创建了一个启用了分页的UIScrollView(水平滚动),我想在UIScrollView中嵌入几个UITableView对象。

怎么做?有没有示例代码?

感谢。

2 个答案:

答案 0 :(得分:2)

下面您将找到将两个UITableViewControllers作为单独页面加载的示例。

// .h File

@interface PagingViewController : UIViewController  <UIScrollViewDelegate>{

}

-(void)loadPage:(int)page;

@end



// .m File

static NSUInteger kNumberOfPages = 2;

@interface PagingViewController ()

@property(nonatomic,retain)NSMutableArray *viewControllers;
@property(nonatomic,retain)UIView *contentView;

@end

@implementation PagingViewController

@synthesize viewControllers;
@synthesize contentView;


-(id)init{

        self = [super init];

    if(self) {

        NSMutableArray *controllers = [[NSMutableArray alloc] init];
        for (unsigned i = 0; i < kNumberOfPages; i++)
        {
            [controllers addObject:[NSNull null]];
        }
        self.viewControllers = controllers;
        [controllers release];

        contentView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];

        self.view = contentView;

        [self loadPage:0];

    }
    return self;
}

- (void)loadPage:(int)page{

    if (page < 0)
        return;
    if (page >= kNumberOfPages)
        return;
    if(page == 0){       
        FirstUITableViewController *firstTableVC = [viewControllers objectAtIndex:page];

        if ((NSNull *)firstTableVC == [NSNull null]){
            firstTableVC = [[FirstUITableViewController alloc] init];
            [viewControllers replaceObjectAtIndex:page withObject:firstTableVC];
            [firstTableVC release];
        }

        if (firstTableVC.view.superview == nil)
        {
            [contentView addSubview:firstTableVC.view];
        }
    }else if(page == 1){

        SecondUITableViewController *secondTableVC = [viewControllers objectAtIndex:page];

        if ((NSNull *)secondTableVC == [NSNull null]){
            secondTableVC = [[SecondUITableViewController alloc] init];
            [viewControllers replaceObjectAtIndex:page withObject:secondTableVC];
            [secondTableVC release];
        }

        if (secondTableVC.view.superview == nil)
        {
            [contentView addSubview:secondTableVC.view];
        }
    }
}

//不要忘记dealloc

答案 1 :(得分:-3)

修改

您可以在tableView中拥有大量对象,self.tableView.scrollEnabled = YES将为其提供垂直滚动视图。

要获得水平滚动,我建议您为每个视图控制器创建一个tableView,并为每个页面添加UIPageControl,表示tableView

检查UIPageControl Documentation

您可以使用本教程进行开发 - http://cocoawithlove.com/2009/01/multiple-virtual-pages-in-uiscrollview.html