尝试使用自定义分组对表格视图进行分组(xcode 4.2 iOS 5.0)

时间:2012-02-11 20:39:49

标签: ios5 xcode4.2

我正在编写一个iPhone应用程序,我有一个表格视图,其中填充了我从txt文件中提供的信息。我想对表格进行分组(所以就像联系人的名字一样),但是我想选择哪个字段进行分组。

例如,对于我的应用程序,我想按类型分组成分(所以乳制品,农产品等......)并在那里出现相应的成分。我该怎么办?我现在有这个代码用于我的表视图:

NSString *wellBalancedIngredientFileContents = [NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Well Balanced Ingredients" ofType:@"txt"] encoding:NSUTF8StringEncoding error:NULL];


wellBalancedIngredients = [wellBalancedIngredientFileContents componentsSeparatedByString:@"(penguins)"];

wellBalancedIngredients(作为其中一个数组)是一个包含所有“均衡成分”的数组。我有3个其他数组,我也根据用户选择填充tableview。

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


    return 1;
}

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



    if (ingredientListChoice == 1) { 
        return [self.wellBalancedIngredients count];

    }
    else if (ingredientListChoice == 2) {
        return [self.meatIngredients count];

    }
    else if (ingredientListChoice == 3) {
        return [self.vegetarianIngredients count];

    }
    else {
        return [self.veganIngredients count];

    }

}

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


    if (ingredientListChoice == 1) {
        cell.textLabel.text = [self.wellBalancedIngredients objectAtIndex:indexPath.row];
    }
    else if (ingredientListChoice == 2) {
        cell.textLabel.text = [self.meatIngredients objectAtIndex:indexPath.row];
    }
    else if (ingredientListChoice == 3) {
        cell.textLabel.text = [self.vegetarianIngredients objectAtIndex:indexPath.row];
    }
    else {
        cell.textLabel.text = [self.veganIngredients objectAtIndex:indexPath.row];
    }
    return cell; 
    // Configure the cell...

}

如何添加此代码以将分组添加到部分中,然后能够使用自定义标题,并根据我选择的首选项填充每个部分。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

首先,您应该在表格中返回所需的部分数量:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{ 
    return numberOfSections;
}

然后,您可以使用每个部分的标题:

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section 
{
    return @"Section Title";
}