實際上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];
}