ios - UITableView 按字母划分,如联系人列表

标签 ios

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

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

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

谢谢。

最佳答案

按照您希望的顺序对数据源进行排序,然后重新加载表格 View 。

尝试创建一个 NSMutableArrays 的 NSDictionary。取每个城市的第一个字母,到上面。然后将您的城市插入字母 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];
}

如果您在使用表格 View 设置数据源时需要更多帮助,请在评论中说明,我会为您提供更多帮助。干杯

关于ios - UITableView 按字母划分,如联系人列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10584966/

相关文章:

ios - 类数据类型的持久化数据

ios - 带有 UIWebPaginationModeLeftToRight 的 UIWebView 背景颜色始终为白色

ios - 使用 NSInvocation setArgument : with value returned from NSArray

ios - 将双引号添加到 NSString 附加到变量

ios - 一个文件中的多个类

ios - 当 View Controller 向后导航到时重新加载表

ios - 如何从 ViewDidLoad 中的警报 View 获取文本字段值? iOS 5 代码

ios - 将项目转换到两个选项之一

objective-c - UITableView 因 reloadRowsAtIndexPaths 崩溃

ios - 如果应用程序从移动设置或后台打开,则更新屏幕上的数据