我正在尝试模拟 Xcode 的工具栏控件来显示/隐藏导航器和检查器:
...但没有底部窗格(仅左侧和右侧:两段)
我从 Xcode 的 UI 中截取图标,并在图像编辑应用程序中跟踪它们。左窗格的资源是:
@1x:
(20x20 @72 dpi)
@2x:
(40x40 @72 dpi,尽管使用 20x20 @144 dpi 似乎没有什么区别)
右窗格的对应部分是相同的,但水平翻转。
所有资源都存放在asset目录中,如下:
我将一个分段控件放在工具栏上,以创建一个内部包含分段控件的工具栏项,并为每个分段(0 和 1)设置图像属性。
两个片段的图像缩放比例均设置为“按比例缩小”。段控件已选中段宽度“固定”,两个段的宽度均为 48。工具栏项目的最小尺寸为 (83 x 25),最大尺寸为 (100 x 28)。
图标在情节提要(Interface Builder)上正确显示。
但是,当我运行该应用程序时,我无法正确显示图标图像。
- 如果我在视网膜显示器上启动我的应用程序,则任一部分上都不会显示图标。
- 如果我将窗口移动到外部非视网膜显示器,两个图标都会显示。
- 如果我从目录中删除两个图像集之一并运行该应用程序,另一个图标正确显示!(在任一监视器上)
- 如果我进一步为两个片段设置相同的剩余图像,它们将正确显示!
- 如果我将两个图像集保留在项目中,但重置Image将其中一个段中的字段清空,另一个图标也不会显示!
到底发生了什么事?
我已经放了一个GitHub 上的示例项目 https://github.com/nicolas-miari/NSToolbarItem-Segment-Image-Issue重现了这个问题。
编辑:为了确保,我使用 cartool 命令行实用程序从编译的应用程序二进制文件中提取了资源(如中所述这个答案 https://stackoverflow.com/a/29468398/433373),并且所有 4 张图像的尺寸都正确......
解决方案:正如建议的伊万的回答 https://stackoverflow.com/a/45794124/433373下面,我改用矢量图形 (PDF) 作为图标。我下载了 Acorn 的试用版,并以 1 倍大小重新创建了图标,然后导出为 PDF。
为了避免在运行时放大 @2x 尺寸时出现模糊,我必须确保编辑器中的所有坐标都是整数,并且还要在矢量形状检查器中为每个形状图层选中“捕捉到像素”框:
(美好的结局)
$ git commit -m "Fix toolbar icons for good (PDF)"