将系统映像用于静态UIApplicationShortcutItem

Jor*_*n H 6 ios ios13 sf-symbols

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

注意到可用iOS密钥文档除了指定了UIApplicationShortcutItemIconType诸如中的预定义枚举案例之一外,没有指定执行此操作的密钥UIApplicationShortcutIconTypeSearch

通过新的初始化程序创建动态快速动作时,可以使用系统映像UIApplicationShortcutIcon.init(systemImageName: String)。似乎很奇怪,它无法用于静态快速动作。

Rya*_*aft 15

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

  • 它记录在这里:https://developer.apple.com/documentation/uikit/menus_and_shortcuts/add_home_screen_quick_actions (2认同)

Moj*_*ini 12

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

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


旧但可能更好的方法:

由于没有太多符号需要同时静态使用,因此解决方案如下:

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

出口

  1. 将其导入Assets.xcassets

资产

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

信息表

结果

结果


结论

第二种方法也为您的应用带来更多好处

  • 向后兼容性(支持 iOS 12 及以下)
  • 向前兼容!(防止中断更改)
  • 更广泛的支持

这些答案中的更多描述