SwiftUI - 检查图像是不是存在

Posted

技术标签:

【中文标题】SwiftUI - 检查图像是不是存在【英文标题】: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"
        


    

【问题讨论】:

请发布使用此逻辑的代码。 【参考方案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"
        

        
    

【讨论】:

以上是关于SwiftUI - 检查图像是不是存在的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI 中的 List 是不是复用类似于 UITableView 的单元格?

Catalyst 'SwiftUI.AccessibilityNode' 不是已知的可序列化元素

更改选项卡式视图栏颜色 SwiftUI

SwiftUI 和 Firebase:当前用户是不是持续存在?

jQuery:检查图像是不是存在

如何检查图像是不是存在于特定位置?