什么是UITableView索引放大镜角色?

Dav*_*ant 57 iphone icons cocoa-touch uitableview

在Apple的iPhone应用程序(如Contacts)中,它们在表视图索引的顶部有一个很好的放大镜图标.由于表视图索引API是基于字符的,我假设此放大镜是Unicode字符.到目前为止,我已经在那里放置了一个问号角色,但这看起来很蹩脚.

谁能告诉我放大镜的特点是什么?

小智 113

UITableViewIndexSearch作为部分索引标题返回(与@"{search}"相同)也有效.

  • 就我而言,这实际上是正确的答案.您应该避免在代码中使用魔术常量 (9认同)
  • 只是要添加,文档说明这可以在iPhone OS 3.0b及更高版本中使用. (2认同)

小智 94

@"{search}" FTW.

返回该标题,它被神奇的字形神奇地取代.

  • 考虑使用`UITableViewIndexSearch`常量,用户123417指出. (34认同)
  • 神圣的废话,就是这样!谢谢! (2认同)

Mar*_*rte 43

在tableView中:sectionForSectionIndexTitle:AtIndex:显式滚动到顶部并返回NSNotFound:

- (NSInteger) tableView:(UITableView *)tableView
sectionForSectionIndexTitle:(NSString *)title
                atIndex:(NSInteger)index {
    if (index == 0) {
        [tableView setContentOffset:CGPointZero animated:NO];
        return NSNotFound;
    }
    return index;
}
Run Code Online (Sandbox Code Playgroud)


wei*_*bel 5

已经存在用于放大镜的UTF码点.这是U + 1F50D.然而,让Xcode识别这个数字有点棘手.根据Apple的字符串编程指南,UTF位应分为两个UTF-16代理对(0xD83D,0xDD0D).请查看此代理对计算器以供参考.

具有代理对的内容的NSString实例可以通过以下方式获得:

[NSString stringWithFormat:@"%C%C", 0xD83D, 0xDD0D];
Run Code Online (Sandbox Code Playgroud)

  • 问的问题是放大镜的特性是什么,这种处理更加神秘的UTF代码点的技术似乎值得一提.iOS有一个庞大的字形库,人们从不使用它,偶尔也可以访问它们,因为它们可以很好地扩展. (2认同)