是否可以在 SwiftUI 中突出显示鼠标悬停时的行

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)

这是当前结果

在此输入图像描述

这就是我想要实现的目标

在此输入图像描述

Asp*_*eri 5

是的,因为 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)