图像视图如何在SWiftUI中通过URL显示照片?

时间:2020-04-01 00:15:37

标签: swiftui

图像视图如何在SWiftUI中按URL显示照片?

我的iPhone中有一张名为“ 0.jpg”的照片,URL为“ / var / mobile / Containers / Data / Application / EB3DA19A-F7B2-48DD-8681-139C7FCB9090 / Documents / Photos”。

>

我的源代码如下:

var imageSection: some View {
    Image(landmark.photoName,bundle: Bundle(url:FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!.appendingPathComponent("Photos")))
}

运行时,将收到错误消息: [SwiftUI]在/ var / mobile / Containers / Data / Application / E03608D6-24A5-4797-8C16-DDAEB03AB623 / Documents / Photos

的资产目录中找不到名为“ 0.jpg”的图像>

我确定jpg文件存在,因为我使用UIImage作为参数,并且显示效果很好。

var imageSection: some View {
    Image(uiImage: UIImage(named: "/var/mobile/Containers/Data/Application/EB3DA19A-F7B2-48DD-8681-139C7FCB9090/Documents/Photos/0.jpg"))
}

在没有UIImage的情况下如何显示图像?

非常感谢您!

1 个答案:

答案 0 :(得分:1)

请参阅记录的Image构造函数

/// Creates a labeled image usable as content for controls.
///
/// - Parameters:
///     - name: the name of the image resource to lookup, as well as
///       the localization key with which to label the image.
///     - bundle: the bundle to search for the image resource and
///       localization content. If `nil`, uses the main `Bundle`.
///       Defaults to `nil`.
public init(_ name: String, bundle: Bundle? = nil)

这个“名称:要查找的图像资源的名称” -不是文件名,而是图像资源名称,并且所有图像资源现在都在资产中目录。

对于外部图像,您已经找到Image(uiImage:)-只需使用它即可。