Как встроить UITableView в UIScrollView? - PullRequest
0 голосов
/ 07 августа 2011

Я создал UIScrollView с включенной подкачкой страниц (горизонтальная прокрутка) и хочу встроить несколько объектов UITableView в UIScrollView.

Как это сделать?Есть ли пример кода?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 07 августа 2011

Ниже вы найдете пример, который загружает два 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];
        }
    }
}

// Не забудьте сдать

0 голосов
/ 07 августа 2011

Изменить:

В вашем tableView может быть много объектов, и self.tableView.scrollEnabled = YES предоставит вертикальную прокрутку.

Чтобы получить горизонтальную прокрутку, я бы предложил создать табличное представление для каждого контроллера представления и добавить UIPageControl, где каждая страница обозначает tableView.

Проверьте документацию UIPageControl .

Вы можете использовать этот учебник для разработки - http://cocoawithlove.com/2009/01/multiple-virtual-pages-in-uiscrollview.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...