我只想在点击列表项的任意位置时执行某些操作。
当点击项目的 Text() 时一切正常,但是当我点击项目的空白区域时,什么也没有发生,为什么?
struct ItemView: View {
var body: some View {
HStack {
Text("Hello")
Spacer()
Text("world")
}
}
}
struct ListView: View {
var body: some View {
List() {
ForEach((1...10).reversed(), id: \.self) { index in
ItemView().onTapGesture {
print("item \(index) taped")
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
-=-=-=
我做了一些实验,它们太奇怪了!!!
如果点击 Text hello,则打印“hello”;
如果点击空白区域,则打印“world”;
如果点击文本世界,则打印点击的“item 0”;
struct ItemView: View {
var body: some View {
HStack {
Text("Hello").onTapGesture {
print("hello tapped")
}
Spacer()
Button(action: {
print("world tapped")
}) {
Text("world")
}
}
}
}
struct ListView: View {
var body: some View {
List() {
ForEach((1...10).reversed(), id: \.self) { index in
ItemView().onTapGesture {
print("item \(index) taped")
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
将背景修改器添加到具有不透明度的 ItemView
struct ContentView: View {
var body: some View {
List() {
ForEach((1...10).reversed(), id: \.self) { index in
ItemView()
.background(Color.gray.opacity(0.001))
.onTapGesture {
print("item \(index) taped")
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)