2

我正在尝试模拟 Xcode 的工具栏控件来显示/隐藏导航器和检查器:

这家伙

...但没有底部窗格(仅左侧和右侧:两段)

我从 Xcode 的 UI 中截取图标并在图像编辑应用程序中跟踪它们。左窗格的资源是:


@1x:

左图标@1x

(20x20 @72 dpi)


@2x:

左图标@2x

(40x40 @72 dpi,虽然使用 20x20 @144 dpi 似乎没有区别)


右窗格的对应项相同,但水平翻转。

所有资源都存储在资产目录中,如下所示:

在此处输入图像描述

我在工具栏上放置了一个分段控件,以创建一个带有分段控件的工具栏项,并为每个段(0 和 1)设置图像属性。

两个段的图像缩放设置为“按比例缩小”。段控件已选中段宽度“固定”,两个段的宽度均为 48。工具栏项的最小尺寸为 (83 x 25),最大尺寸为 (100 x 28)。

图标在故事板上正确显示(界面生成器)。

但是,当我运行该应用程序时,我无法正确显示图标图像。

  • 如果我在视网膜显示器上启动我的应用程序,则任何部分都不会显示任何图标。
  • 如果我将窗口移动到外部非视网膜显示器,则会显示两个图标。
  • 如果我从 w 目录中删除两个图像集中的一个并运行该应用程序,则另一个图标将正确显示!(在任一显示器上)
  • 如果我进一步为两个段设置相同的剩余图像,它们将正确显示!
  • 如果我将两个图像集都保留在项目中,但将其中一个片段中的图像字段重置为空,则不会显示另一个图标!

到底是怎么回事??

在 GitHub 上放了一个示例项目来重现该问题。


编辑:为了确保,我使用 cartool 命令行实用程序从已编译的应用程序二进制文件中提取了资源(如本答案中所述),并且所有 4 个图像的大小都正确...


解决方案:正如Ivan 在下面的回答中所建议的,我切换到使用矢量图形 (PDF) 作为图标。我下载了 Acorn 的试用版并以 1 倍大小重新创建了我的图标,然后导出为 PDF。

为了避免在运行时以@2x 的放大尺寸出现模糊,我必须确保编辑器中的所有坐标都是整数,并在矢量形状检查器中为每个形状图层选中“对齐像素”框:

橡子用户界面

(美好的结局)

$ git commit -m "Fix toolbar icons for good (PDF)"
4

1 回答 1

1

根据我的经验,在工具栏中使用位图很麻烦。您可以尝试针对完全推荐的分辨率来避免一些问题:https ://developer.apple.com/macos/human-interface-guidelines/icons-and-images/custom-icons/

但是,最简洁的方法是使用矢量 (pdf) 图标,因为它们可以按预期工作。

于 2017-08-21T09:51:07.493 回答