如何在 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/
[发帖人编辑]
从文章中总结(值得一读,因为它讨论的内容远不止如何访问图像资源),以下是如何做到这一点:
- 键入
Image.
并使用自动完成栏,选择月亮和山脉图标 (ImageLiteral)
- 显示“图像”弹出窗口。如果您尚未添加图像,请选择“插入自...”、“照片库”或“拍照”。添加图像后,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() )
我已将相册中的一张图片 (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/
[发帖人编辑] 从文章中总结(值得一读,因为它讨论的内容远不止如何访问图像资源),以下是如何做到这一点:
- 键入
Image.
并使用自动完成栏,选择月亮和山脉图标 (ImageLiteral)
- 显示“图像”弹出窗口。如果您尚未添加图像,请选择“插入自...”、“照片库”或“拍照”。添加图像后,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() )