Пользовательская структура UITableViewController - PullRequest
0 голосов
/ 09 марта 2012

Я создаю пользовательское табличное представление с содержимым «Статические ячейки» и стилем «Сгруппировано».Я хочу вставить статическое содержимое программно.Я могу сделать представление вида следующим образом:

MyCustomViewController *myCustomViewController = [[MyCustomViewController alloc] init];
[self.navigationController pushViewController:myCustomViewController animated:TRUE];

Я хочу сделать 3 раздела в табличном представлении, один раздел имеет 2 ячейки, а два других раздела имеют 1 ячейку.Ранее заполняли ячейки динамики, но понятия не имели, как бороться с этим созданием секций и различным количеством ячеек внутри.Какие-нибудь решения?

enter image description here

1 Ответ

1 голос
/ 09 марта 2012

Это должно вам помочь!

- (void)viewDidLoad
{

    [super viewDidLoad];

    NSArray *firstSection = [NSArray arrayWithObjects:@"Red", @"Blue", nil];
    NSArray *secondSection = [NSArray arrayWithObjects:@"Orange", @"Green", @"Purple", nil];
    NSArray *thirdSection = [NSArray arrayWithObject:@"Yellow"];

    NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:firstSection, secondSection, thirdSection, nil];
    [self setContentsList:array];
    array = nil;


}
- (void)viewWillAppear:(BOOL)animated
{

    [super viewWillAppear:animated];

    [[self mainTableView] reloadData];

}


- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{

    NSInteger sections = [[self contentsList] count];

    return sections;
}

- (NSInteger)tableView:(UITableView *)tableView
 numberOfRowsInSection:(NSInteger)section
{

    NSArray *sectionContents = [[self contentsList] objectAtIndex:section];
    NSInteger rows = [sectionContents count];

    NSLog(@"rows is: %d", rows);
    return rows;
}

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

    NSArray *sectionContents = [[self contentsList] objectAtIndex:[indexPath section]];
    NSString *contentForThisRow = [sectionContents objectAtIndex:[indexPath row]];

    static NSString *CellIdentifier = @"CellIdentifier";

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

    [[cell textLabel] setText:contentForThisRow];

    return cell;
}

#pragma mark -
#pragma mark UITableView Delegate Methods

- (void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...