自定义UITableViewController结构

时间:2012-03-09 13:12:49

标签: ios ios5 uitableview

我正在制作一个自定义的表格视图,其中包含内容' Static Cells'和风格' Grouped'。我想以编程方式插入静态内容。我可以通过以下方式初始化视图:

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

我想在表格视图中制作3个部分,一个部分有2个单元格,另外两个部分有1个单元格。之前已经填充了动力学细胞,但不知道如何处理这些部分的创建和不同数量的细胞。任何解决方案?

enter image description here

1 个答案:

答案 0 :(得分:1)

这应该对你有帮助!

- (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];
}