是否可以在 SwiftUI 中突出显示鼠标悬停时的行
Is it possible to highlight row on mouse hover in SwiftUI
我正在尝试创建一个列表,其中的行会在鼠标经过时更改背景颜色。但是使用当前代码,所有行都在悬停时突出显示。
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()
})
}
}
}
}
这是当前结果
这就是我想要实现的目标
是的,因为布尔值对所有行都进行了切换,所以我们需要存储悬停项,例如
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
})
}
}
}
}
我正在尝试创建一个列表,其中的行会在鼠标经过时更改背景颜色。但是使用当前代码,所有行都在悬停时突出显示。
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()
})
}
}
}
}
这是当前结果
这就是我想要实现的目标
是的,因为布尔值对所有行都进行了切换,所以我们需要存储悬停项,例如
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
})
}
}
}
}