UITableView 索引中的 # 符号

Posted

技术标签:

【中文标题】UITableView 索引中的 # 符号【英文标题】:The # symbol in UITableView index 【发布时间】:2011-02-17 08:40:42 【问题描述】:

我已经到处寻找这个问题的答案。在 iPhone Phone 应用程序的联系人选项卡上,有一个用于搜索的小放大镜符号和一个用于联系人表视图中行数的 # 符号。

我已经实现了搜索符号 ok 但我的 # 被排序到索引的顶部。有谁知道如何让它排序到索引的底部。

我已经尝试了几个小时,但到目前为止没有运气。任何帮助/建议都非常感谢。感谢您的宝贵时间。

【问题讨论】:

【参考方案1】:

将其实现到您的代码中:

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

【讨论】:

【参考方案2】:

在您的 TableViewDataSource 中实现它

- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
 return [NSArray arrayWithObjects:@"A",@"B",@"C",@"D",@"E",@"F",@"G",@"H",@"I",@"J",@"K",@"L",@"M",@"N",@"O",@"P",@"Q",@"R",@"S",@"T",@"U",@"V",@"W",@"X",@"Y",@"Z",@"#",nil];

同样将其用于您的标题:

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
 switch(section)
  case 0:
   return @"A";
  case 1:
   return @"B";
  ... (all the way through the alphabet)
  case 26:
   return @"#";
  default:
   return @"";
 

然后相应地安排您的数据。我会使用一个二维数组,外部是部分,内部是该部分中的行。然后你可以对内部数组进行排序并自己管理外部数组。

希望这会有所帮助!

【讨论】:

以上是关于UITableView 索引中的 # 符号的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 常用属性及方法

无效更新:第 0 节 UITableView 中的行数无效

iPhone + UITableView + 行高

滚动/调整 UITableView

UITableView 拉伸问题

实现 UITapGestureRecognizer 后 UITableView 不再响应