57

在 Apple 的 iPhone 应用程序(如联系人)中,它们在表格视图索引的顶部有一个漂亮的放大镜图标。由于表格视图索引 API 是基于字符的,我假设这个放大镜是 Unicode 字符。到目前为止,我已经求助于在那里放置一个问号字符,但这看起来很蹩脚。

谁能告诉我放大镜是什么字符?

4

11 回答 11

114

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

在 Swift 中,你会使用UITableView.indexSearch.

于 2009-06-15T22:44:01.617 回答
94

@"{search}"FTW。

返回该标题,它会神奇地被正确的字形替换。

于 2008-11-12T02:44:53.757 回答
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;
}
于 2010-03-21T17:08:37.213 回答
5

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

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

[NSString stringWithFormat:@"%C%C", 0xD83D, 0xDD0D];
于 2011-09-21T10:45:29.737 回答
4

在这种情况下使用了一个常量 UITableViewIndexSearch,如下所述:

http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UITableView_Class/Reference/Reference.html#//apple_ref/doc/constant_group/Section_Index_Icons

于 2010-04-20T22:53:42.990 回答
2

您当然可以在表格视图索引中放置一个 Unicode 字符(我已经使用其他字符完成了此操作)并将您的标题放在第一个表格部分以代替 tableViewHeader。也就是说,我还没有在任何 unicode 参考文献中找到放大镜。我发现的关闭是电话录音机符号 - ⌕ (\u2315)。不幸的是,它指向错误的方向,“手柄”延伸到“放大镜”中。

于 2008-10-24T22:37:22.390 回答
1

例如,在 sectionIndexTitlesForTableView 添加一个 NSMutableArray* 标题,除了您的索引之外,添加 [titles addObject: UITableViewIndexSearch]

于 2011-04-28T07:27:30.580 回答
1

我知道这是一篇旧帖子,但因为它与我正在寻找的内容相似......如果有人正在寻找放大镜的 Unicode 字符,那将是这个 \u128269 表示的:

于 2013-09-23T15:22:56.983 回答
0

有人声称 Apple 告诉他们SDK 不支持这一点。

于 2008-10-24T21:04:13.390 回答
0

您可以使用空格作为索引字符,然后覆盖UIImageView禁用用户交互并包含以下图像的字符:(来源:booleanmagic.com搜索图标

于 2008-10-25T10:58:02.487 回答
0

我可以理解为什么有人可能不想使用该图像,尽管它非常漂亮......字符更容易维护并且可以轻松扩展。

⚦ 是类似放大镜的字形的另一个 unicode 选项。再次,它没有面向正确的方向。我相信它确实是某种雌雄同体的性别符号。上面 unicode 符号的 html 是 ⚦

我真的认为应该在“26:Misc. Symbols”下的unicode字符集中添加一个放大镜符号。

于 2009-02-22T01:15:24.680 回答