我的这个测试文件没有按我预期的方式工作。
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)")因此我扩展了框架修改器来进行测试。然而,只有当我直接点击数字或文本时,颜色才会改变。
如何点击数字左侧或右侧的空间并使其改变颜色而不是不执行任何操作?
我试图弄清楚为什么当仅点击一个元素时 ForEach 数组中的所有元素都会发生变化。
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)")
.font(.system(size: 70))
.foregroundColor(boolTest ? .red : .green)
.onTapGesture {
boolTest.toggle()
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
例如,当我点击包含 1 的视图时,所有其他数字也会改变颜色。我希望能够单击一个数字并且只有该数字改变颜色。
我正在尝试在我的应用程序中实现一个类似于苹果天气应用程序的功能。这是一个照片示例:
从外观上看,它是一个按钮,当用户单击它时,会出现其他内容。那是什么样的 SwiftUI 控件?基本上,什么代码制作了该按钮以及由此出现的小(迷你)菜单?