如何在Swift中使用UIImage在数组中使用字符串索引与文本一起显示?

问题描述

所以我有一束花。


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”类型的值?预期的参数类型为“字符串”。

这是我的完整代码:

import PlaygroundSupport

struct ContentView: View
{
    var flower: String = ""
    
    var flowers = ["Waterlily","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

关于功能参数和参数标签的快速文档 https://docs.swift.org/swift-book/LanguageGuide/Functions.html#ID166

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...