首页 > 解决方案 > 更改单行的视图背景颜色

问题描述

我有这个代码。我想将内容视图背景颜色中的 EditForm 视图中名称为“Aditya”的行的背景颜色更改为 ,例如 gray 。我现在正在做的是在列表之后设置颜色,但它并没有做我想要的,只是将“Aditya”名称背景颜色的行设置为灰色。我怎样才能在内容视图中做到这一点。

  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()
        }
    }


  

标签: swiftuibackground-color

解决方案


这是解决方案的演示。使用 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)
            }
        }
    }
}

推荐阅读