如何在 Swift 中使用 UIImage 使用数组中的字符串索引与文本一起显示?
How do I use an index of strings in an array to display alongside text using UIImage in Swift?
所以我有一堆花。
var flowers = ["Waterlily", "Sunflower", "Rose", "Magnolia", "Lily", "Jonquil", "Echinacea"]
我正在尝试将数组中的这些字符串转换为小写,并在它们的末尾附加 .jpg 以便我可以在我的资源文件夹中显示图片。
这是我的代码:
Image(UIImage(named: flowers[index].lowercased() + ".jpg"))
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 100, height: 60)
我的错误是我无法将类型 'UIImage?' 的值转换为预期的参数类型 'String'。
这是我的完整代码:
import PlaygroundSupport
struct ContentView: View
{
var flower: String = ""
var flowers = ["Waterlily", "Sunflower", "Rose", "Magnolia", "Lily", "Jonquil", "Echinacea"]
var body: some View
{
List(0..<flowers.count)
{
index in
HStack
{
Image(UIImage(named: flowers[index].lowercased() + ".jpg"))
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 100, height: 60)
Text(self.flowers[index])
}
}
}
}
PlaygroundPage.current.setLiveView(ContentView())
您为 Image
视图使用了错误的初始化程序。
在这种情况下使用 Image(uiImage: UIImage)
。 (注意参数名称/参数标签是必需的。)
https://developer.apple.com/documentation/swiftui/image/init(uiimage:)
(更改您的代码以使其正常工作)
struct ContentView: View
{
var flower: String = ""
var flowers = ["Waterlily", "Sunflower", "Rose", "Magnolia", "Lily", "Jonquil", "Echinacea"]
var body: some View
{
List(0..<flowers.count) { index in
HStack {
// uiImage argument label is required
Image(uiImage: UIImage(named: flowers[index].lowercased() + ".jpg"))
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 100, height: 60)
Text(self.flowers[index])
}
}
}
}
这是 Image
视图的所有初始化程序的列表
https://developer.apple.com/documentation/swiftui/image
Swift 函数参数和参数标签的文档
https://docs.swift.org/swift-book/LanguageGuide/Functions.html#ID166
所以我有一堆花。
var flowers = ["Waterlily", "Sunflower", "Rose", "Magnolia", "Lily", "Jonquil", "Echinacea"]
我正在尝试将数组中的这些字符串转换为小写,并在它们的末尾附加 .jpg 以便我可以在我的资源文件夹中显示图片。
这是我的代码:
Image(UIImage(named: flowers[index].lowercased() + ".jpg"))
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 100, height: 60)
我的错误是我无法将类型 'UIImage?' 的值转换为预期的参数类型 'String'。
这是我的完整代码:
import PlaygroundSupport
struct ContentView: View
{
var flower: String = ""
var flowers = ["Waterlily", "Sunflower", "Rose", "Magnolia", "Lily", "Jonquil", "Echinacea"]
var body: some View
{
List(0..<flowers.count)
{
index in
HStack
{
Image(UIImage(named: flowers[index].lowercased() + ".jpg"))
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 100, height: 60)
Text(self.flowers[index])
}
}
}
}
PlaygroundPage.current.setLiveView(ContentView())
您为 Image
视图使用了错误的初始化程序。
在这种情况下使用 Image(uiImage: UIImage)
。 (注意参数名称/参数标签是必需的。)
https://developer.apple.com/documentation/swiftui/image/init(uiimage:)
(更改您的代码以使其正常工作)
struct ContentView: View
{
var flower: String = ""
var flowers = ["Waterlily", "Sunflower", "Rose", "Magnolia", "Lily", "Jonquil", "Echinacea"]
var body: some View
{
List(0..<flowers.count) { index in
HStack {
// uiImage argument label is required
Image(uiImage: UIImage(named: flowers[index].lowercased() + ".jpg"))
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 100, height: 60)
Text(self.flowers[index])
}
}
}
}
这是 Image
视图的所有初始化程序的列表
https://developer.apple.com/documentation/swiftui/image
Swift 函数参数和参数标签的文档 https://docs.swift.org/swift-book/LanguageGuide/Functions.html#ID166