我在调用函数时遇到问题。它不是我在此应用中编写的第一个功能,但这是..“不同” xD
目前,我尝试显示一些具有说明,金额和类型的项目。在类型旁边,应该显示一个小图标。
我想用一个字符串保存图标的类型,所以它应该像这样:
用户选择配料的类型,例如“Getränke”,此值保存在我的类型变量中。调用我的函数myImage并将这种类型的配料保存在我的itemImage值中,并且我的itemImage值与图片关联。就像在下面的我的Switch案例中一样-用户选择“Getränke”变量类型=Getränke,而我的Switch案例选择了该值并将其保存在itemImage中。 (对于我的测试用例,只有一张图片,称为“ Drogerie”,这就是为什么每个案例都相同的原因; o
基本上这是我当前的视图代码:
var body: some View {
NavigationView {
Form {
Picker("Rezept oder Zutat", selection: $rezeptOrIngredients){
ForEach(Self.subTitle, id: \.self)
{
Text($0)
}
}
if rezeptOrIngredients == "Zutat" {
Picker("Type", selection: $type){
ForEach(Self.types, id:\.self){
Text($0)
}
}
TextField("Beschreibung", text: $beschreibung)
HStack{
TextField("Menge", text: $menge)
Picker(selection: $unitType, label: Text("Anzahl Personen")){
ForEach(Self.units, id:\.self)
{
Text($0)
}
}.pickerStyle(WheelPickerStyle())
.frame(width: 100, height: 100)
//My function////
myImage()
}
}
}
}
.navigationBarTitle("Hinzufügen von...")
}
当然还有该函数的代码:
func myImage() -> AnyView{
switch type {
case "Nahrungsmittel": itemImage = "Drogerie"
case "Haushaltsartikel": itemImage = "Drogerie"
case "Getränke": itemImage = "Drogerie"
case "Obst und Gemüse": itemImage = "Drogerie"
case "Tiefkühl": itemImage = "Drogerie"
case "Drogerie und Kosmetik": itemImage = "Drogerie"
case "Baby und Kind": itemImage = "Drogerie"
case "Tierartikel": itemImage = "Drogerie"
case "Süßigkeiten und Salzigkeiten": itemImage = "Drogerie"
default: itemImage = "empty"
}
return AnyView //Shows Error
}
我已经理解了为什么我需要一个返回视图的函数,但是老实说我无法理解此AnyView类型分别意味着我的函数需要返回什么...
谢谢您的帮助! :-)
答案 0 :(得分:1)
可能您的意思是以下内容(但是不清楚type
是什么,itemImage
是什么,`由于不可见的声明):
func myImage() -> some View {
switch type {
case "Nahrungsmittel": itemImage = "Drogerie"
case "Haushaltsartikel": itemImage = "Drogerie"
case "Getränke": itemImage = "Drogerie"
case "Obst und Gemüse": itemImage = "Drogerie"
case "Tiefkühl": itemImage = "Drogerie"
case "Drogerie und Kosmetik": itemImage = "Drogerie"
case "Baby und Kind": itemImage = "Drogerie"
case "Tierartikel": itemImage = "Drogerie"
case "Süßigkeiten und Salzigkeiten": itemImage = "Drogerie"
default: itemImage = "empty"
}
return Image(itemImage)
}