我正在尝试模拟 Xcode 的工具栏控件来显示/隐藏导航器和检查器:
...但没有底部窗格(仅左侧和右侧:两段)
我从 Xcode 的 UI 中截取图标并在图像编辑应用程序中跟踪它们。左窗格的资源是:
@1x:
(20x20 @72 dpi)
@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)"