实际上UITableView默认就支持象电话本那样的按首字母索引。 实现sectionIndexTitlesForTableView 和 sectionForSectionIndexTitle 这两个接口即可。 细节请参考UITableViewDataSource帮助文档。 - (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView { NSMutableArray *toBeReturned = [[NSMutableArray alloc]init]; for(char c = ‘A’;c<=‘Z’;c++) [toBeReturned addObject:[NSString stringWithFormat:@"%c",c]]; return toBeReturned; } - (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index { NSInteger count = 0; for(NSString *character in arrayOfCharacters) { if([character isEqualToString:title]) { return count; } count ++; } return 0; } - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { if([arrayOfCharacters count]==0) { return @”"; } return [arrayOfCharacters objectAtIndex:section]; } 原文链接:http://www.cocoachina.com/bbs/simple/?t40035.html