我正在编写一个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...
}
如何添加此代码以将分组添加到部分中,然后能够使用自定义标题,并根据我选择的首选项填充每个部分。谢谢你的帮助。
答案 0 :(得分:1)
首先,您应该在表格中返回所需的部分数量:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return numberOfSections;
}
然后,您可以使用每个部分的标题:
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
return @"Section Title";
}