【问题标题】:Use SF Symbols system image for static UIApplicationShortcutItem为静态 UIApplicationShortcutItem 使用 SF Symbols 系统映像
【发布时间】:2019-11-30 00:41:00
【问题描述】:

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

docs noting the available iOS keys 没有指定一个键来执行此操作,除了指定来自UIApplicationShortcutItemIconType 的预定义枚举案例之一,例如UIApplicationShortcutIconTypeSearch

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

【问题讨论】:

  • 您可以尝试从ipsw更新文件中提取股票应用程序或使用越狱设备将股票应用程序放入您的计算机,然后浏览他们的Info.plist文件以查看其中是否有正在使用 SF 符号。

标签: ios ios13 uiapplicationshortcutitem sf-symbols


【解决方案1】:

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

【讨论】:

【解决方案2】:

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

有一个poor documented way,即在Info.plist文件中使用UIApplicationShortcutItemIconSymbolName而不是UIApplicationShortcutItemIconFile


旧但可能更好的方法:

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

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

  1. 将其导入 Assets.xcassets

  1. 使用其名称作为键 UIApplicationShortcutItemIconFile

结果


结论

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

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

更多描述here in these answer

【讨论】:

  • 除了手动操作之外,我唯一要补充的是,Apple 将来可能会更改(或修改)图像。根据图像,这将是非常好或非常糟糕,但在你这样做之前值得考虑。
【解决方案3】:

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

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

在 Apple 的 documents 中还声明:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2020-12-22
    • 1970-01-01
    • 1970-01-01
    • 2020-01-30
    • 2021-05-03
    • 2019-10-24
    • 1970-01-01
    • 2021-07-11
    • 1970-01-01
    相关资源
    最近更新 更多