UITableView按联系人列表中的字母划分

时间:2012-05-14 14:07:40

标签: ios

我确定之前已经问过这个问题,但我在搜索中找不到任何内容。

我有一个城市名称列表,可以根据所选国家/地区进行更改。我想按照第一个字母(如联系人列表)的顺序显示这些内容。

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

感谢。

2 个答案:

答案 0 :(得分:2)

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

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

部分数量= [[NSDictionary allKeys] count]

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设置数据源,请在评论中说明,我会为您提供更多帮助。干杯

答案 1 :(得分:1)

是的,您必须手动创建所有部分。在NSDictionary中存储部分会很方便。要使字母部分标记只返回sectionIndexTitlesForTableView:

中的数组