Панель вкладок на TableView? - PullRequest
0 голосов
/ 10 сентября 2009

Ожидаем вашего хорошего совета!

У меня есть TableView (сгруппированная таблица, созданная с помощью I.B). Я показываю некоторые данные в таблице, когда код выполняется с использованием представления контроллера навигации. Я хочу добавить «Панель вкладок» в моем представлении таблиц через I.B (или) программно. Например: запустите встроенное приложение «Часы», где вы можете увидеть панель вкладок, в которой есть опции «Мировые часы», «Будильник», «Секундомер» и «Таймер» в одном окне. Я пытался создать как то же самое, добавив «панель вкладок» в I.B, но перетаскивание панели вкладок не находится в представлении таблицы. Я не знаю почему. (или) иначе я даже попытался программно создать его в табличном представлении, но не удалось. Разве это не возможно? Может кто-нибудь помочь мне, указав код или примеры?

спасибо.

Calve /

Ответы [ 3 ]

2 голосов
/ 10 сентября 2009

Я думаю, что вы выбрали неправильный подход. Неверно добавлять панель вкладок в представление таблицы. Вы должны начать с приложения панели вкладок и добавить контроллер навигации в это приложение панели вкладок. Внутри контроллера навигации вы можете добавить представление с таблицей на нем.

2 голосов
/ 17 сентября 2010

Вам необходимо добавить его в представление вашего родительского контроллера. Также элемент tempView не является необходимым.

например. если приложение использует контроллер навигации в качестве контроллера основного представления, вы бы добавили его в свой пользовательский класс UITableViewController:

- (void)viewDidLoad
{
    [super viewDidLoad];    UITabBar* tabBarView = [[UITabBar alloc] initWithFrame:CGRectMake(0, 430, 320, 50)];
    NSArray* tabbarItems = [[NSArray alloc] initWithObjects:[[UITabBarItem alloc] initWithTitle:@"Item1" image:nil tag:1],[[UITabBarItem alloc] initWithTitle:@"Item2" image:nil tag:2],[[UITabBarItem alloc] initWithTitle:@"Item3" image:nil tag:3], nil];
    tabBarView.items = tabbarItems;
    [self.navigationController.view addSubview:tabBarView];
}
0 голосов
/ 10 сентября 2009

Попробуйте создать UIView и добавить tabBar к этому представлению, и теперь поместите это представление в вашу таблицу. Я попробовал это и это работает,

Так ваша функция cellForRowAtIndexPath будет выглядеть так

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }

    UIView *tempView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 50)];
    UITabBar* tabBarView = [[UITabBar alloc] initWithFrame:CGRectMake(0, 0, 320, 50)];
    NSArray* tabbarItems = [[NSArray alloc] initWithObjects:[[UITabBarItem alloc] initWithTitle:@"Item1" image:nil tag:1],[[UITabBarItem alloc] initWithTitle:@"Item2" image:nil tag:2],[[UITabBarItem alloc] initWithTitle:@"Item3" image:nil tag:3], nil];
    tabBarView.items = tabbarItems;
    [tempView addSubview:tabBarView];

    [cell addSubview:tempView];


    return cell;
}

Так что теперь вместо использования ячейки по умолчанию вы можете настроить ее так, как вам хочется. Также я не рассматривал проблему освобождения памяти, поэтому вам может потребоваться обновить код для освобождения выделенной памяти.

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