Ich habe diesen Code. Ich möchte die Hintergrundfarbe der Zeile mit dem Namen "Aditya" in der EditForm-Ansicht in der Hintergrundfarbe der Inhaltsansicht beispielsweise in Grau ändern. Was ich jetzt mache, ist die Farbe nach der Liste zu setzen, aber es macht nicht das, was ich will, was nur die Zeile mit der Hintergrundfarbe des Namens "Aditya" auf Grau setzt. Wie kann ich das in der Inhaltsansicht machen?
struct ContentView: View {
var someelements = ["Aditya" , "Kappor" , "Chattarjee", "Mithun"]
var body: some View {
List {
ForEach (self.someelements , id: \.self ) { value in
EditForm(name: value , action: {
if value == "Aditya" {
/*what i am doing*/
self.listRowBackground(Color(.gray))
}
})
}
}
}
}
struct EditForm : View {
var name : String
var action: (()->())?
var body: some View {
Group {
Button (action: {
//some action
}) {
HStack {
Text(self.name)
.scaledToFit()
.foregroundColor(.red)
}
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
Hier ist eine Demo der Lösung. Vorbereitet mit Xcode 12.1 / iOS 14.1
struct ContentView: View {
var someelements = ["Aditya" , "Kappor" , "Chattarjee", "Mithun"]
var body: some View {
List {
ForEach (self.someelements , id: \.self ) { value in
EditForm(name: value , action: {
}).listRowBackground(value == "Aditya" ? Color.gray : Color.clear)
}
}
}
}
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen