我确定之前已经问过这个问题,但我在搜索中找不到任何内容。
我有一个城市名称列表,可以根据所选国家/地区进行更改。我想按照第一个字母(如联系人列表)的顺序显示这些内容。
我怎样才能做到这一点?我是否必须手动创建所有部分或是否有内置方式?
感谢。
答案 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: