2

我确定以前有人问过这个问题,但我在搜索中找不到任何东西。

我有一个城市名称列表,可以根据所选国家/地区进行更改。我想按字母顺序订购这些,并根据第一个字母(如联系人列表)将它们显示在部分中。

我怎样才能做到这一点?我必须手动创建所有部分还是有内置方法?

谢谢。

4

2 回答 2

2

将您的数据源排序为您希望的顺序,然后重新加载表格视图。

尝试制作 NSMutableArrays 的 NSDictionary。取每个城市的第一个字母,toUpper it。然后将您的城市插入到字母 k 的数组中。

部分数 = [[NSDictionary allKeys] 计数]

NSArray* cityNames = [NSArray arrayWithObject: @"Detroit"];

NSMutableDictionary* dataSource = [[NSMutableDictionary alloc] init];    

for( NSString* city_name in cityNames){

    NSString* key = [[city_name substringToIndex:1] uppercaseString];

    if( ![dataSource objectForKey: key] ){
        [dataSource setObject:[NSMutableArray array] forKey:key];
    }
    [[dataSource objectForKey: key] addObject: city_name];
}

如果您需要更多帮助来设置您的 tableview 数据源,请在评论中说出来,我会为您提供更多帮助。干杯

于 2012-05-14T14:09:39.533 回答
1

是的,您必须手动创建所有部分。并且将部分存储在NSDictionary. 要有字母的部分索引只需返回它们的数组sectionIndexTitlesForTableView:

于 2012-05-14T14:19:49.347 回答