我在哪里可以获得 UISearchBar 中使用的放大镜图标?

Posted

技术标签:

【中文标题】我在哪里可以获得 UISearchBar 中使用的放大镜图标?【英文标题】:Where can I get the magnifying glass icon used in UISearchBar? 【发布时间】:2012-08-04 20:17:12 【问题描述】:

我正在使用UITextField 作为UISearchBar 的替代品,并使用这个疯狂的代码从原始UISearchBar 中“窃取”放大镜图标:

    UISearchBar *originalSearchBar = [[UISearchBar alloc] init];
    for (UIView *searchBarSubview in [originalSearchBar subviews]) 
        if([searchBarSubview isKindOfClass:[UITextField class]]) 
            UITextField *textField = (UITextField *)searchBarSubview;
            [_textField setLeftView:[textField leftView]];
            [_textField setLeftViewMode:UITextFieldViewModeAlways];
        
    

您可能已经猜到了,我不想使用自己的位图。

难道在 Cocoa 的某个地方没有更容易访问的放大镜图标吗?

【问题讨论】:

【参考方案1】:

所以,这是带有 unicode 字符的代码:

    UILabel *magnifyingGlass = [[UILabel alloc] init];
    [magnifyingGlass setText:[[NSString alloc] initWithUTF8String:"\xF0\x9F\x94\x8D"]];
    [magnifyingGlass sizeToFit];

    [textField setLeftView:magnifyingGlass];
    [textField setLeftViewMode:UITextFieldViewModeAlways];

编辑:对于适合 ios 7 风格的简单外观,添加 Unicode 变体选择器\U000025B6

【讨论】:

生成的图像看起来很棒!非常感谢! 谷歌“表情符号”了解更多信息。你的家伙会爱上“表情符号”。例如:apps.timwhitlock.info/emoji/tables/unicode 这是一个很好的解决方案,放大镜是 3d 玻璃,在现代 iOS7 和 iOS8 中,3d 设计已被删除,所有东西都是平面格式。所以设计看起来不一致。但是我们可以使用 UIImage 进行平面设计。 @AsifHabib 很好。已编辑。 如何添加 unicode 变体选择器?普通放大镜拿不到。【参考方案2】:

我不知道 Cocoa 中有任何标准图像(在 Unicode 中也没有字符)。

不过,此图像是 Dock 捆绑包的一部分:

/System/Library/CoreServices/Dock.app/Contents/Resources/ectl_search_magnify.png

【讨论】:

其实是有unicode字符的!我试过了,看起来不错:fileformat.info/info/unicode/char/1f50d/index.htm 很好...我似乎记得在某个时候无法使该工作正常工作(也许所有操作系统版本的字体都不支持它?)。无论如何,它现在就在那里……它甚至是“彩色的”。所以,用那个。 :)【参考方案3】:

由于无法显示普通的 unicode 放大镜,我决定看看标准的 UISearchBox 使用什么。原来它是放大镜的图像,我已经提取并包含在下面,尽管它是一个非常简单的形状,很难完美复制。

【讨论】:

【参考方案4】:

使用 OSX 10.7.5 我找不到 ectl_search_magnify.png 但很简单

find /System -ipath '*magni*'

找到:

/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/MagnifyingGlassIcon.icns
/System/Library/PrivateFrameworks/ProKit.framework/Versions/A/Resources/LionPanels.bundle/Contents/Resources/Dark_NSSmallMagnifyingGlass.tiff
/System/Library/PrivateFrameworks/ProKit.framework/Versions/A/Resources/LionPanels.bundle/Contents/Resources/Night_NSSmallMagnifyingGlass.tiff

后两者可能是你想要的(假设你需要一张图片)。

【讨论】:

以上是关于我在哪里可以获得 UISearchBar 中使用的放大镜图标?的主要内容,如果未能解决你的问题,请参考以下文章

我在哪里可以获得 libpq 源?

我在哪里可以获得 comdef.h?

我在哪里可以获得更多 jQuery UI 主题? [关闭]

我在哪里可以获得有关如何使用 Apollo 和 GraphQL 获取数据的文档?

我在哪里可以在 kinect v2 中获得 BoneOrientation.StartJoint

我在哪里可以获得用于 NHibernate 的 Linq?