Ibr*_*m99 2 swift swiftui swiftui-list
我正在尝试创建一个列表,其中的行在鼠标经过时会更改背景颜色。但使用当前代码,所有行都会在悬停时突出显示。
struct ContentView: View {
@State private var overText = false
var body: some View {
List{
ForEach(0 ..< 3){ item in
Row(text: "hhaha")
.background(Color(overText ? .systemBlue : .clear))
.onHover(perform: { hovering in
overText.toggle()
})
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是当前结果
这就是我想要实现的目标
是的,因为 bool 切换了所有行,所以我们需要存储悬停的项目,例如
struct ContentView: View {
@State private var overText = -1
var body: some View {
List{
ForEach(0 ..< 3){ item in
Row(text: "hhaha")
.background(Color(overText == item ? .systemBlue : .clear))
.onHover(perform: { hovering in
overText = item
})
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2087 次 |
| 最近记录: |