【问题标题】:Displaying Elements in UITableView like iPhone contacts, separated into alphabetical sections?在 UITableView 中显示元素,如 iPhone 联系人,分成字母部分?
【发布时间】:2012-02-17 09:53:44
【问题描述】:

我一直在网上寻找解决方案,但我似乎找不到任何东西,我被卡住了。

我有一个 NSMutableArray:

productsToDisplay

它由一堆 Product 对象组成,每个对象都有一个“名称”属性,例如

Product *product = ....

NSLog(@"%@", product.name);

每个单元格显示一个产品名称,单击时会显示有关该产品的更多信息。

但是,我有很多产品,想在 UITableView 中将它们分成按字母顺序排列的部分(就像 iPhone 上的联系人一样)。

有人能指出正确的方向吗?

非常感谢,

杰克

[编辑] 我意识到我可以只根据 name 属性对数组进行排序,但我还想要在 UITableView 右侧运行的快速搜索栏,以便用户可以轻松找到他们正在寻找的部分。

【问题讨论】:

  • 使用自定义表格视图单元
  • 我只想在单元格中显示姓名,所以我在那个部门很好,我想将单元格本身按字母顺序排序,就像在 iPhone 的联系人应用程序中一样。
  • 你不能只按名称对包含产品详细信息的数组进行排序,然后重新加载表以显示排序的元素吗?
  • 对不起@Jennis 我错过了部分问题。是的,我试过了,但正如我在编辑中所说,我也希望 UITableView 侧面的快速搜索栏也可以让用户快速找到他们需要的部分。据我所知,快速搜索栏仅适用于部分?

标签: iphone objective-c arrays uitableview sorting


【解决方案1】:

使用此委托来显示右侧部分列表:-

- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {
    return searchArray; 
}

使用此委托根据右手列表关联表格内容(部分):-

- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index {
    if (index == 0) {
    [tableView scrollRectToVisible:[[tableView tableHeaderView] bounds] animated:NO];
        return -1;
    }
    return index;
}

【讨论】:

    【解决方案2】:

    将字母部分添加到您的 tableview,然后您必须创建与 tableview 中的部分相对应的字母数组。像 section[0] - 'A'、section[1] - 'B' 等。

    添加 - (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView { 返回键; } //委托要求在索引中显示一个值数组。

    所以这个数组中的第一项将把用户带到第一个部分,也就是第 0 部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多