ios - UIButton 的系统镜像出现在 iOS14 中,但不在 iOS13 中

标签 ios ios13 ios14

我为 UIButtons 和标签栏中设置了系统图像。这适用于 iOS 14,但在 iOS 13 上图像丢失。
iOS 13 上缺少系统镜像的原因可能是什么?
详细信息:
我有一个按钮,在 Storyboard 中将图像属性设置为“square.and.arrow.up”。 (见下面的截图)
该图像出现在 iOS 14 上,但不在 iOS 13 上(请参见下面的屏幕截图。模拟器重叠)
选项卡栏项目也会发生类似的行为。 (请参阅下面的其他屏幕截图)
Xcode 是 12.5,MacOS 11.2.3,iOS 模拟器 13.6 和 14.5。
这也发生在设备上,而不仅仅是在模拟器中。
SF Symbols App 声称该图标自 iOS 13+ 起可用。
任何帮助表示赞赏:-)
UIButton image property in storyboard
Appearance in two simulators
Appearance for tab bar items in simulators
Icon availability

最佳答案

好像是个bug🐞。
✅ 将此错误用作功能!
虽然这是一个错误,但 总是一个很好的做法, 对这些正在进行的事情有一个后备。
所以尝试导出符号(文件 -> 导出..)并将其作为 Assets 导入到 Assets 目录中。
请注意, 虽然 Xcode 支持导入的符号,但您可以考虑为较旧的 iOS 设备使用单独的图标文件(如 PDF)。

除了它是 更可靠 之外,它还会给您的项目带来一些 其他好处 :
1. 向后兼容
由于它使用捆绑包中的嵌入 Assets ,因此它们甚至可以在 iOS 12 及更低版本中使用。
2.向前兼容!
所有版本的 SF Symbols.app 都是作为 测试版 应用程序出现的,Apple 一直在更改约定和规则以及创建和使用这些符号的其他方面。
例如,看看这个命名约定:

如您所见,此符号的名称从iOS 15 更改,以后旧代码将不会显示此内容!
3. 更广泛的支持
您可以在不直接支持使用符号的情况下使用这些导出的符号(例如 UIApplicationShortcutItem 在早期版本中不受支持时和 here is the full example )
包起来:
因此,始终备份符号并在出现问题时退回到它们是一个不错的选择......

关于ios - UIButton 的系统镜像出现在 iOS14 中,但不在 iOS13 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67778749/

相关文章:

iOS 14 - 如何以编程方式打开默认邮件应用程序?

ios - UITableViewCell EditingStyle Delete时如何自定义删除按钮?

iphone - 如何将 plist 从 bundle 移动到 iOS 上的文档文件夹

ios - Subspec vendored_frameworks 作为另一个 cocoapod 库

apple-push-notifications - 在 ios 13 上未获得 APNS 设备 token

ios - UISearchController 在 iOS 13 上无法正常工作

ios - 在 iOS 中将 ExtAudioFileRef 类型转换为 AudioFileID 类型

ios - 在 iOS 13 中设置 UISearchField 的占位符文本颜色

swift - 如何在保持 LiDAR 调试网格的同时禁用摄像头馈送?

ios - 如何在 iOS 14 上仅获取具有授予访问权限的 Assets ?