UITableVIew实现类似于电话本的首字母索引

时间:2021-07-27 20:14:03

 

实际上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];

}