如何解决如何在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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。