将 SF Symbols 系统映像用于静态 UIApplicationShortcutItem
Use SF Symbols system image for static UIApplicationShortcutItem
在您的 Info.plist 中指定主屏幕快速操作 UIApplicationShortcutItems
时,是否可以使用来自 SF Symbols 的系统图像?
docs noting the available iOS keys 除了指定 UIApplicationShortcutItemIconType
中的预定义枚举案例之一(例如 UIApplicationShortcutIconTypeSearch
.
之外,没有指定执行此操作的键
通过新的初始化程序创建动态快速操作时可以使用系统映像 UIApplicationShortcutIcon.init(systemImageName: String)
。是否有允许静态快速操作的 Info.plist 键?
我阅读了文档并尝试了几种方法来使其正常工作,但我得出的结论是这不可能实现,主要原因有两个:
- SF Symbols 只能在 运行 iOS 13 或更早的设备上本地使用。
Info.plist
文件可以指定 platform
和 device
类型,但不能指定 OS 版本。
在 Apple 的 documents 中还声明:
You can use SF Symbols in apps running in iOS 13 and later, watchOS 6 and later, and tvOS 13 and later. To browse the full set of symbols, download the SF Symbols app.
这意味着您能够以标准方式使用这些符号。您可以执行以下操作:
- 从 here 下载 SF Symbols 应用程序。
- 导出您想要用作 SVG 文件的符号。
- 将导出的 SVG 文件添加到您的资产中。
- 使用资产名称作为
UIApplicationShortcutItemIconFile
键的值。
这可能不是您所希望的方法,但它是使用 SF Symbols 作为快捷方式图标的有效解决方案,所以我希望这对您有用。
本机但不太兼容的方式:(读到最后)
有一个poor documented way,就是在Info.plist
文件中用UIApplicationShortcutItemIconSymbolName
代替UIApplicationShortcutItemIconFile
旧的但可能更好的方法:
由于需要同时静态使用的符号不是太多,解决方法如下:
- Select 您需要的符号并从 SF Symbols.app:
中导出
- 将其导入 Assets.xcassets:
- 使用密钥的名称
UIApplicationShortcutItemIconFile
:
结果
结论
第二种方法还为您的应用带来[=44=]更多好处:
- 向后兼容(支持iOS 12及以下)
- 向前兼容! (防止中断更改)
- 更广泛的支持
更多描述
在 Info.plist 中使用 UIApplicationShortcutItemIconSymbolName
而不是 UIApplicationShortcutItemIconFile
。
在您的 Info.plist 中指定主屏幕快速操作 UIApplicationShortcutItems
时,是否可以使用来自 SF Symbols 的系统图像?
docs noting the available iOS keys 除了指定 UIApplicationShortcutItemIconType
中的预定义枚举案例之一(例如 UIApplicationShortcutIconTypeSearch
.
通过新的初始化程序创建动态快速操作时可以使用系统映像 UIApplicationShortcutIcon.init(systemImageName: String)
。是否有允许静态快速操作的 Info.plist 键?
我阅读了文档并尝试了几种方法来使其正常工作,但我得出的结论是这不可能实现,主要原因有两个:
- SF Symbols 只能在 运行 iOS 13 或更早的设备上本地使用。
Info.plist
文件可以指定platform
和device
类型,但不能指定 OS 版本。
在 Apple 的 documents 中还声明:
You can use SF Symbols in apps running in iOS 13 and later, watchOS 6 and later, and tvOS 13 and later. To browse the full set of symbols, download the SF Symbols app.
这意味着您能够以标准方式使用这些符号。您可以执行以下操作:
- 从 here 下载 SF Symbols 应用程序。
- 导出您想要用作 SVG 文件的符号。
- 将导出的 SVG 文件添加到您的资产中。
- 使用资产名称作为
UIApplicationShortcutItemIconFile
键的值。
这可能不是您所希望的方法,但它是使用 SF Symbols 作为快捷方式图标的有效解决方案,所以我希望这对您有用。
本机但不太兼容的方式:(读到最后)
有一个poor documented way,就是在Info.plist
文件中用UIApplicationShortcutItemIconSymbolName
代替UIApplicationShortcutItemIconFile
旧的但可能更好的方法:
由于需要同时静态使用的符号不是太多,解决方法如下:
- Select 您需要的符号并从 SF Symbols.app: 中导出
- 将其导入 Assets.xcassets:
- 使用密钥的名称
UIApplicationShortcutItemIconFile
:
结果
结论
第二种方法还为您的应用带来[=44=]更多好处:
- 向后兼容(支持iOS 12及以下)
- 向前兼容! (防止中断更改)
- 更广泛的支持
更多描述
在 Info.plist 中使用 UIApplicationShortcutItemIconSymbolName
而不是 UIApplicationShortcutItemIconFile
。