21

在 Info.plist 中指定主屏幕快速操作时UIApplicationShortcutItems,是否可以使用 SF Symbols 中的系统映像?

文档指出可用的iOS 键并没有指定一个键来执行此操作,除了指定预定义的枚举案例之一,UIApplicationShortcutItemIconType例如UIApplicationShortcutIconTypeSearch.

通过新的初始化程序创建动态快速操作时,可以使用系统映像UIApplicationShortcutIcon.init(systemImageName: String)。是否有一个 Info.plist 键允许此静态快速操作?

4

3 回答 3

16

在您的 Info.plist 中使用UIApplicationShortcutItemIconSymbolName而不是。UIApplicationShortcutItemIconFile

于 2020-05-18T21:33:21.937 回答
15

原生但不是很兼容的方式:(读到最后)

有一个糟糕的记录方式,那就是使用UIApplicationShortcutItemIconSymbolName而不是UIApplicationShortcutItemIconFileInfo.plist文件中。


旧但可能更好的方法:

由于您需要同时静态使用的符号并不多,因此解决方案如下:

  1. 选择您需要的符号并将其从SF Symbols.app导出:

出口

  1. Assets.xcassets中导入它:

资产

  1. 使用它的名字作为键UIApplicationShortcutItemIconFile

信息列表

结果

结果


结论

第二种方法也给你的应用带来了更多的好处:

  • 向后兼容性(支持 iOS 12 及更低版本)
  • 向前兼容!(防止破坏性更改)
  • 更广泛的支持

这些答案中的更多描述

于 2019-12-12T09:49:58.490 回答
2

我阅读了文档并尝试了几种方法来使其正常工作,但我得出的结论是,这不可能有两个主要原因:

  • SF 符号仅可在运行 iOS 13 或更早版本的设备上本地使用。
  • Info.plist文件可以指定 aplatformdevice类型,但您不能指定操作系统版本。

在 Apple 的文件中,它还指出:

您可以在 iOS 13 及更高版本、watchOS 6 及更高版本以及 tvOS 13 及更高版本中运行的应用程序中使用 SF 符号。要浏览全套符号,请下载 SF Symbols 应用程序。

这意味着您可以通过标准方式使用这些符号。这是您可以执行的操作:

  • 从这里下载 SF Symbols 应用程序。
  • 将您想要使用的符号导出为 SVG 文件。
  • 将导出的 SVG 文件添加到您的资产中。
  • 使用资产名称作为UIApplicationShortcutItemIconFile键的值。

这可能不是您希望的方法,但它是使用 SF 符号作为快捷方式图标的有效解决方案,所以我希望这对您有用。

于 2019-12-12T06:47:00.277 回答