Tom*_*mas 2 swiftui swiftui-foreach swiftui-ontapgesture
我的这个测试文件没有按我预期的方式工作。
import SwiftUI
struct SwiftUIView: View {
@State var boolTest = false
var nums = ["1","2","3","4","5","6","7"]
var body: some View {
VStack {
ForEach(nums, id: \.self) { num in
Text("\(num)")
.frame(width: 400)
.font(.system(size: 70))
.foregroundColor(boolTest ? .red : .green)
.onTapGesture {
boolTest.toggle()
}
}
}
}
}
struct SwiftUIView_Previews: PreviewProvider {
static var previews: some View {
SwiftUIView()
}
}
Run Code Online (Sandbox Code Playgroud)
当我点击数字时,前景色会按预期发生变化。但是,我希望能够点击左侧和右侧的区域,Text("\(num)")因此我扩展了框架修改器来进行测试。然而,只有当我直接点击数字或文本时,颜色才会改变。
如何点击数字左侧或右侧的空间并使其改变颜色而不是不执行任何操作?
系统将视图的“不可见”(即没有可见的绘制内容)部分视为无响应,除非您contentShape对其设置了 a 。
//...
.frame(width: 400)
.contentShape(Rectangle())
//...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1261 次 |
| 最近记录: |