SwiftUI-展开可选的图像数据以基于UIImage(data)创建图像

马特罗索夫亚历山大

我找到了此链接,并且有一些回答说我们可以解决两个任务:

  • 如果需要,显示视图元素
  • 或显示默认值,如果找到nil

我的数据模型包含Data正确包含的可选内容,可用于Image上的元素View

当前,因为我还没有找到一种方法来解决此问题并使用!不安全的此标志

Image(uiImage: UIImage(data: userService.user.imageData!)!)

当然,我不能保证并且我不应该使用它,但是需要帮助来解开它。

作为一种快速的解决方法,我可以将此图像数据属性设置为非可选,然后从本地文件加载一些数据,但是即使那样,我仍然可以在此处展开​​另外一个力UIImage(data

卢加加

您有几种选择。我认为最直接的方法是在Image上进行扩展并定义一个新的初始化程序来满足您的需求:

extension Image {

    public init?(data: Data?) {
        guard let data = data,
            let uiImage = UIImage(data: data) else {
                return nil
        }
        self = Image(uiImage: uiImage)
    }
}

然后,您可以像这样简单地使用它:

Image(data: userService.user.imageData)

因为它nullable需要View与其他至少一个包含在另一个中View

如果要提供占位符代替丢失的图像,可以使用如下扩展名:

extension Image {

    public init(data: Data?, placeholder: String) {
        guard let data = data,
          let uiImage = UIImage(data: data) else {
            self = Image(placeholder)
            return
        }
        self = Image(uiImage: uiImage)
    }
}

然后,您可以像这样简单地使用它:

Image(data: userService.user.imageData, placeholder: "nameOfPlaceholder")

因为不是nullable这样,所以不需要View与至少一个彼此包含在另一个容器中View

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SwiftUI图像不会更新

来自分类Dev

Coredata图像转换swiftUI

来自分类Dev

SwiftUI按钮图像插入

来自分类Dev

合并图像SwiftUI

来自分类Dev

使用个人图像创建SwiftUI按钮

来自分类Dev

在SwiftUI图像上重复动画

来自分类Dev

在NavigationLink中,SwiftUI图像消失

来自分类Dev

SwiftUI:ViewModifier,其中内容是图像

来自分类Dev

Swiftui获取图像的显示尺寸

来自分类Dev

URL的SwiftUI图像未显示

来自分类Dev

SwiftUI:使用.fileImporter加载图像

来自分类Dev

SwiftUI Widget背景基于值传递的图像URL或渐变背景

来自分类Dev

SwiftUI将数据从UIKit获取到SwiftUI

来自分类Dev

SwiftUI创建以点为指标的图像滑块

来自分类Dev

SWIFTUI-如何创建链接到URL的图像?

来自分类Dev

使用SwiftUI创建警报

来自分类Dev

SwiftUI中的数据关联

来自分类Dev

SwiftUI异步数据获取

来自分类Dev

SwiftUI:如何将图像转换为jpeg数据?

来自分类Dev

在SwiftUI视图中解包可选

来自分类Dev

参数SwiftUI中的可选绑定

来自分类Dev

如何在列表中显示图像-SwiftUI

来自分类Dev

使用DispatchQueue在SwiftUI中异步加载图像

来自分类Dev

SwiftUI:无法为图像制作动画

来自分类Dev

SwiftUI无法从下载URL获取图像

来自分类Dev

SwiftUI Picker SegmentedStyle图像显示错误

来自分类Dev

SwiftUI:如何仅裁剪图像的底部

来自分类Dev

如何在SwiftUI中设置图像色调?

来自分类Dev

缩小但不放大SwiftUI图像