Swift SF Symbols - 仅在 iOS 13.0 或更高版本中可用错误

Edw*_*ted 3 xcode swift sf-symbols

一直在玩 SF 符号,它们也令人印象深刻。

然而,当我尝试在许多 SF 示例的代码中使用它们时,我想出了:

let image = UIImage(systemName: "hands.clap"). < init(systemName:) is only available in iOS 13.0 or newer
Run Code Online (Sandbox Code Playgroud)

我需要像以前一样将图像复制到资产目录中吗?我想避免的是警告他们使用的每个实例,例如

if #available(iOS 13.0, *) {
            heartImage = UIImage(systemName: "heart.fill")!
        } else {
            heartImage = UIImage(named: "heart.jpeg")
 }
Run Code Online (Sandbox Code Playgroud)

文件名是按照大多数说明复制并粘贴的。

我缺少什么?

Mr.*_*Oak 5

使用SFSymbols仅适用于 iOS 13,但是某些特定符号也可以具有更高的部署版本(14 或 15)。在应用程序目标“常规”选项卡中检查您的项目版本以及所需符号的最低部署。如果你想在较低版本的 iOS 上使用符号,你应该if #available(iOS 13.0, *)像你提到的那样标记创建图像。如果您想为较低版本的 iOS 制作后备图像,您唯一的选择是使用UIImage(named: "heart.jpeg"). 您还可以手动导出符号并将其添加到资产目录中,但请记住,您需要将其从 SVG 格式转换为其他格式,因为低于版本 13 的 iOS 也不支持 SVG 保留矢量数据。导出符号