【问题标题】:SwiftUI - Check If Image ExistSwiftUI - 检查图像是否存在
【发布时间】:2019-12-21 01:01:09
【问题描述】:

如果图像存在,我正在尝试执行代码。 问题是我无法捕获空图像调用的状态。 结果是我得到一个空图像,但如果可能的话,我宁愿放一个占位符图像。

   func procImage(inName: String) {


        switch (inName) {

        case inName:
            imageName = inName.lowercased()

        default:
            imageName = "blank"
        }


    }

【问题讨论】:

  • 请发布使用此逻辑的代码。

标签: ios swift image swiftui ios13


【解决方案1】:

此检查很简单,但您需要确保默认图像始终存在。

func getSafeImage(named: String) -> Image {
   let uiImage =  (UIImage(named: named) ?? UIImage(named: "Default.png"))!
   return Image(uiImage: uiImage)
}

【讨论】:

    【解决方案2】:

    试试这个代码:

    func procImage(inName: String) -> UIImage {
        if let confirmedImage = UIImage(named: inName) {
            return confirmedImage
        } else {
            return UIImage(named: "Default_Image.png")!
        }
    }
    

    【讨论】:

    • 这个不会编译,因为你需要强制默认图片不为nil。返回 UIImage(named: "Default_Image.png")!
    • 不客气,另一方面,问题是关于 SwiftUI,所以该方法应该返回一个 Image 类型的对象,而不是 UIImage。 :)
    【解决方案3】:

    感谢大家的贡献。 除了莫雷诺的解决方案外,提供的解决方案在我的情况下并不完全奏效,但为我的解决方案提供了一条途径。 我不需要存储检查结果,只需验证文件是否存在。 所以这就是我想出的有效的方法。 这可能不是最佳解决方案,因此欢迎改进代码。

    func procImage(inName: String) {
    
    
    
            let imageConvertToLowercase = inName.lowercased()
    
            if getMember.firstName.lowercased() == imageConvertToLowercase {
    
                if (UIImage(named: imageConvertToLowercase) != nil) {
    
                imageName = imageConvertToLowercase
    
            } else {
    
                imageName = "blank"
            }
    
            }
        }
    

    【讨论】:

      猜你喜欢
      • 2011-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-19
      相关资源
      最近更新 更多