【问题标题】:What's the UITableView index magnifying glass character?UITableView 索引放大镜字符是什么?
【发布时间】:2010-09-19 02:32:00
【问题描述】:

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

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

【问题讨论】:

  • 我不确定,所以我不会回答这个问题,但您几乎可以肯定不走运。我主要基于这样一个事实,即 facebook 和linkedin 应用程序都缺少此功能。如果有的话,我希望能在这些地方找到它。

标签: iphone cocoa-touch uitableview icons


【解决方案1】:

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

在 Swift 中,您将使用 UITableView.indexSearch

【讨论】:

  • 只是为了补充,文档指出这在 iPhone OS 3.0b 及更高版本中可用。
  • 这可能是推荐的方法。 @"{search}" 似乎没有记录在任何地方。
  • 就我而言,这实际上是正确的答案。您应该避免在代码中使用魔术常量
【解决方案2】:

@"{search}" FTW。

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

【讨论】:

  • 考虑使用 UITableViewIndexSearch 常量,正如 user123417 指出的那样。
【解决方案3】:

在 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;
}

【讨论】:

  • 另一个选项是 [self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] atScrollPosition:UITableViewScrollPositionBottom animated:NO];
  • 您应该返回index - 1 以说明附加部分引入的偏移量。
【解决方案4】:

放大镜已有一个现有的 UTF 代码点。它是U+1F50D。然而,让 Xcode 识别这个数字有点棘手。根据 Apple 的字符串编程指南,应将 UTF 位拆分为两个 UTF-16 代理对(0xD83D、0xDD0D)。请与this surrogate pair calculator 联系以供参考。

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

[NSString stringWithFormat:@"%C%C", 0xD83D, 0xDD0D];

【讨论】:

  • 没有。不。不。使用几个(较旧的)答案中提到的 UITableViewIndexSearch 。它是 SDK 的一部分,因此您的应用将在 iOS 版本之间保持兼容。
  • 所问的问题是放大镜的字符是什么,而这种处理更神秘的 UTF 代码点的技术似乎值得一提。 iOS 有一个庞大的字形库,人们从不使用它们,偶尔访问它们真是太好了,因为它们的扩展性非常好。
【解决方案5】:
【解决方案6】:

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

【讨论】:

  • 是的 - 我已经看过这些角色了,但还没有看过。我的另一个想法是它存在于 iPhone 上而不是 OS X 上的字体集中。最后,也许它根本不是一个字符;只是 Apple 在内部交换了一些私人图标。
  • 我在 App Store 上的短时间内抓到了一本 Friend Book,它在索引的顶部有一个放大镜,这就是为什么我认为它是一个 Unicode 字符。但是,就像你说的,我还没有在我见过的任何角色中找到它。
【解决方案7】:

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

【讨论】:

    【解决方案8】:

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

    您可以在此网站上查看它的全部详细信息: http://www.charbase.com/1f50d-unicode-left-pointing-magnifying-glass

    在我的例子中,我想做一个带有放大镜的搜索输入框,我设法通过这段代码来做到这一点,请注意,我们需要使用可能无法在旧版浏览器中使用的特殊字体或操作系统:

    <input type="text" style="font-family: Segoe UI Symbol;" placeholder="&#128269;">
    

    这在我的机器 Win7 的 Firefox 和 Chrome 中都有效,但在这种情况下 IE 始终是占位符的例外。

    【讨论】:

      【解决方案9】:

      某人claims that Apple told them SDK 不支持此功能。

      【讨论】:

        【解决方案10】:

        我可以理解为什么有些人可能不想使用这张图片,尽管它非常漂亮......角色更容易维护并且可以轻松扩展。

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

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

        【讨论】:

          【解决方案11】:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-04-08
            • 2012-02-18
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-07-19
            相关资源
            最近更新 更多