【问题标题】:Check if SF Symbol exists Swift检查 SF Symbol 是否存在 Swift
【发布时间】:2019-12-12 05:15:53
【问题描述】:

我想显示一个带有数字的 SwiftUI 图像。我可能会这样做:

let number = 13
Image(systemName: "\(number).square.fill")

但是,并不是每个号码都有一个 SF 符号 - 如果我想显示 134.square.fill 但发现没有一个,导致应用程序崩溃怎么办?

如何在不使应用崩溃的情况下检查 SF Symbol 是否存在?

【问题讨论】:

    标签: swift image swiftui sf-symbols


    【解决方案1】:

    如果数字不存在,则以下代码将显示问号符号。但是你可以调整它来做任何事情。

    struct ContentView: View {
        var body: some View {
            let number = 144
    
            return VStack {
                Image(uiImage: UIImage(systemName: "\(number).square.fill") ?? UIImage(systemName: "questionmark.square.fill")!)
            }
        }
    }
    

    【讨论】:

    • UIImage(systemName: "\(number).square.fill") ?? UIImage(systemName: "questionmark.square.fill")!
    • @LeoDabus 是的,我更新了答案以包括您的改进。干杯。
    • 你可以使用我的枚举,它支持使用带有 SFSymbols 的 Image 作为枚举:github.com/luckychris/SFSymbols。然后您在编译时就知道它是否存在并且您可以免费获得自动完成功能。
    • 当您使用Image(uiImage: UIImage(....)) 时,您将无法应用foregroundColorfont 等属性。如果你想保留这些,那么你应该检查UIImage(systemName: ...)是否返回nil,然后使用Image(systemName: ...)直接加载它我个人不喜欢这样加载图像两次但似乎你不能同时拥有它.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-19
    • 2014-10-08
    • 2018-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多