swiftui - 更改单行的视图背景颜色
问题描述
我有这个代码。我想将内容视图背景颜色中的 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()
}
}
解决方案
这是解决方案的演示。使用 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)
}
}
}
}
推荐阅读
- sql - 页面项和变量
- r - R Shiny:在单击操作按钮之前阻止显示 cssloader
- python - 表格样式 KeyError: u"没有名为 'Table Grid' 的样式"
- java - (Java / 处理)如何在屏幕上的不同位置创建对象的多个实例?
- css - 动画提交按钮
- java - Java 的原生字符串字符集
- google-play - 为什么在通过网络安装应用程序时忽略并覆盖 playstore url 中的 utm 参数。Play.google.com?
- c# - 如何从 Lua / MoonSharp 脚本调用和等待异步 C# 方法?
- mysql - Nodejs Mysql Select Count 嵌套循环插入查询
- html - 烧瓶验证并将文件上传到网页以