6

我想创建一个视图,例如iOS联系人应用程序,

基本上我想要的是,ABCDEFG....位于此图像右侧的垂直,当用户单击字符时,M我想获取字符M 我应该如何实现这一点?是否有任何 iOS 控件可以为我提供此 `ABCDEF ...?

提前感谢。

编辑

- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
{
    return [[NSArray arrayWithObject:UITableViewIndexSearch] arrayByAddingObjectsFromArray:
            [[UILocalizedIndexedCollation currentCollation] sectionIndexTitles]];
}

- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index
{
    if (title == UITableViewIndexSearch)
    {
        CGRect searchBarFrame = self.searchDisplayController.searchBar.frame;
        [tableView scrollRectToVisible:searchBarFrame animated:YES];

        return -1;
    }
    else {
        UILocalizedIndexedCollation *currentCollation = [UILocalizedIndexedCollation currentCollation];
        NSLog(@"selected charecter=%ld",(long)[currentCollation sectionForSectionIndexTitleAtIndex:index]);
        return [currentCollation sectionForSectionIndexTitleAtIndex:index-1];
    }
}
4

1 回答 1

12

您需要实现这两种方法:

// return list of section titles to display in section index view (e.g. "ABCD...Z#")
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView;                                                    
// tell table which section corresponds to section title/index (e.g. "B",1))
- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index;

与相应的数据源:

例如,如果你有一个数组

`@"Cat", @"Mouse", @"Dog", @"Horse", @"Duck", @"Monkey"`

然后你会返回和数组sectionIndexTitlesForTableViewas :

`@[@"C", @"D", @"H", @"M"]`

因为@"Dog"and@"Duck"@"D", @"Mouse"and@"Monkey"@"M"等等。

当然,对于sectionForSectionIndexTitle,您返回该索引的相应索引。(1代表@"D",3代表@"M"等等)

于 2013-07-16T11:37:04.263 回答