如何在 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