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' 不是已知的可序列化元素