对分组的tableview部分(标题)进行排序

时间:2013-01-08 10:33:26

标签: ios uitableview sorting nsdictionary

我很难按照我想要的顺序将标题(部分)放在分组表视图中,这不是数字或字母顺序。

以前我总是通过设置这样的字典和数组将数据添加到我的表视图中:

 NSMutableDictionary *temp = [[NSMutableDictionary alloc] init];
 [temp setObject: AlphaData forKey:@"Alpha"];
 [temp setObject: BetaData forKey:@"Beta"];
 [temp setObject: CharlieData forKey:@"Charlie"];

 self.tableContents = temp;
 [temp release];
 self.sortedKeys = [[self.tableContents allKeys]
                       sortedArrayUsingSelector:@selector(compare:)];

其中AlphaData是一个数组。 然后在设置表视图时使用字典和数组。

但是现在我想按顺序推荐Beta,Alpha,Charlie部分。

现在我知道我的问题是因为self.tableContentsNSMutableDictionary因此它没有排序或索引,我可以看到:

for (id key in temp) {
    NSLog(@"key: %@, value: %@", key, [temp objectForKey:key]);
}

返回:Charlie,Beta,Alpha。 (假设那是相当随机的,如果没有排序的话)

因此删除sortedArrayUsingSelector:@selector(compare:)];将无法获得所需的结果。

我已经忘记了我曾经尝试过的东西,因为我一直在摆弄和试验以及许多错误而不是真正的理解,但它包括改变:

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    return [self.sortedKeys objectAtIndex:section];
}

不知道从哪里开始。

1 个答案:

答案 0 :(得分:0)

好的,我现在感觉有点傻了:

[sortedKeys addObject: @"Beta"];
[sortedKeys addObject: @"Alpha"];
[sortedKeys addObject: @"Charlie"];

我现在需要的工作。

道歉。