如何在包含SQLite3数据库的表视图中实现节?

时间:2012-03-25 13:50:36

标签: iphone objective-c uitableview sqlite

我有一个使用UITableView和导入的sqlite3数据库显示大量值的应用程序。现在我面临的问题是我需要为元素制作部分。对于iPhone中的默认应用程序“联系人”,它必须类似,但我不希望该部分仅为第一个字母对元素进行排序。数据库包含有关食物的数据,因此部分应该像“面包”,“肉”,“鱼”等。

请帮助,任何建议将不胜感激!

1 个答案:

答案 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;
 }