SwiftUI -检查图像是否存在

tpgth1q7  于 12个月前  发布在  Swift
关注(0)|答案(4)|浏览(163)

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

func procImage(inName: String) {

        switch (inName) {

        case inName:
            imageName = inName.lowercased()

        default:
            imageName = "blank"
        }

    }

字符串

zy1mlcev

zy1mlcev1#

这个检查很简单,但是你需要确保默认图像始终存在。

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

字符串

esbemjvw

esbemjvw2#

这里提供的所有代码示例都是解决方案,但是当你处理SVG时,可能会有模糊的图像,这对我来说是一个很大的缺点。下面是一个保留资产矢量属性的解决方案:

func getImageNamed(_ imageName: String, fallbackImageName: String) -> Image {
    if UIImage(named: imageName) == nil {
        return Image(fallbackImageName)
    }
    return Image(imageName)                   
}

字符串

sr4lhrrt

sr4lhrrt3#

试试这个代码:

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

字符串

8ulbf1ek

8ulbf1ek4#

感谢所有的贡献。提供的解决方案并不完全在我的情况下,除了莫雷诺的解决方案,但提供了一个路径到我的解决方案。我不需要存储检查的结果,但只是验证文件的存在。所以这是我想出的工作。这可能不是最佳的解决方案,所以改进的代码将受到欢迎。

func procImage(inName: String) {


        let imageConvertToLowercase = inName.lowercased()

        if getMember.firstName.lowercased() == imageConvertToLowercase {

            if (UIImage(named: imageConvertToLowercase) != nil) {

            imageName = imageConvertToLowercase

        } else {

            imageName = "blank"
        }

        }
    }

字符串

相关问题