这是我正在使用的代码:
var array = ["Q","W","E","R","T","Y"]
HStack(){
ForEach(0..<topRow.count, id: \.self){i in
MyView(letter: self.array[i])
.onTapGesture {
print("Test")
}
}
}
所有“ MyView”都正确显示,但是当我点击其中的任何一个时,都不会打印任何内容。而且MyView只是一个text()。
答案 0 :(得分:0)
我找到了问题和解决方案。正如New Dev指出的那样,该错误是由所示代码中未包含的某些内容所调用的。我会在这里张贴出什么毛病,以防有人偶然发现。
未包含的是MyView的代码,我将在此处输入:
struct MyView: View {
var letter:String
@State var pressed = false
var body: some View {
ZStack{
if pressed{
Text(letter)
.font(Font.custom("ComicNeue-Bold", size: 30))
.foregroundColor(.white)
.opacity(0.23)
} else if !pressed{
Text(letter)
.font(Font.custom("ComicNeue-Bold", size: 30))
.foregroundColor(.white)
}
}.padding(5)
.onTapGesture {
self.pressed = true
}
}
}
我通过从ZStack中删除.onTapGesture解决了该问题。因此,我猜测问题是视图不能具有两个.onTapGesture修饰符。