我有一个使用UITableView和导入的sqlite3数据库显示大量值的应用程序。现在我面临的问题是我需要为元素制作部分。对于iPhone中的默认应用程序“联系人”,它必须类似,但我不希望该部分仅为第一个字母对元素进行排序。数据库包含有关食物的数据,因此部分应该像“面包”,“肉”,“鱼”等。
请帮助,任何建议将不胜感激!
答案 0 :(得分:0)
创建一个NSDictionary,其键是要显示的标题,值是NSArray,它包含所有包含的对象。现在执行以下操作:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return [[dict allkeys]count]; }
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection(NSInteger)section
{
//Number of rows it should expect should be based on the section
NSArray *array = [dict objectForKey:[[dict allKeys] objectAtIndex:section]];
return [array count];
}
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
return [[dict allKeys] objectAtIndex:section];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}
// Set up the cell...
cell.text = [[dict objectForkey:[[dict allKeys] objectAtIndex:indexpath.section]] objectAtIndex:indexPath.row];
return cell;
}