如何在 SwiftUI iPad 游乐场中引用图像文件?

How to reference an image file in a SwiftUI iPad Playground?

我已将相册中的一张图片 (jpg) 添加到 UserResources 文件夹中(通过 Playground 应用右上角的 + 菜单)。声明 SwiftUI 图像时如何引用该文件?

我试过使用整个路径:

let path: String = { Bundle.main.paths(forResourcesOfType: "JPG", inDirectory: nil)[0] }()

似乎给了我所需文件的路径,“PICT0024.JPG”:

/var/mobile/Containers/Data/PluginKitPlugin/F01FA67E-97CA-4590-915A-C8071507C6E0/Library/Application Support/Main Module Resources Bundles/55929C8C-46C9-4691-B86B-389D1473E9A8.bundle/Contents/Resources/PICT0024.JPG

我接着声明:

Image(systemName: path)

但是图片没有显示。我可能有错误的参考,但无法弄清楚我需要指定什么。

哦,就这个

Image(“PICT0024.JPG”) 

也不行。

引用该图像文件的正确方法是什么?

请将答案限制在 SwiftUI 5 和编辑 iPad 上。目前无法使用 XCode。

谢谢。

Image(systemName: path)

这个构造函数是用于系统 SF Symbols

Image(“PICT0024.JPG”)

此构造函数用于资产目录中的图像

你必须这样使用的外部图像

Image(uiImage: UIImage(contentsOfFile: path))

这是我使用的: https://www.appcoda.com/swiftui-swift-playgrounds-ipad-mac/

[发帖人编辑] 从文章中总结(值得一读,因为它讨论的内容远不止如何访问图像资源),以下是如何做到这一点:

  1. 键入 Image. 并使用自动完成栏,选择月亮和山脉图标 (ImageLiteral)

  1. 显示“图像”弹出窗口。如果您尚未添加图像,请选择“插入自...”、“照片库”或“拍照”。添加图像后,select 并按“使用”(弹出窗口的右上角)。

结果如下所示:

[这里的图片是毛茛,毛茛。]

import SwiftUI
import PlaygroundSupport

// Add image to the project with the "+" button,
// then select either the file, or image icon,
// then navigate to desired image, 
// then add it to the iPad Playground project

let imageFileNameString = "IMG_2702.jpeg"


struct ContentView: View {
    
    var body: some View {
        
        // the method below requires the UIImage be unwrapped
        Image(uiImage: UIImage(named: imageFileNameString)!) 

        //   -or-
        
        // The commented-out method below does not require any unwrapping. 
        // Typos will fail with "something went wrong around here" error

        // Image(uiImage: UIImage(imageLiteralResourceName: imageFileNameString))
            
        .resizable()
    }
}

PlaygroundPage.current.setLiveView( ContentView() )