toggle - SwiftUI - 所有变量都切换而不是突出一个
问题描述
我有 5 个状态变量和 5 个按钮。我想要它们连续,并一个接一个地切换它们
变量
@State private var canEat: Bool = false
@State private var canDrink: Bool = false
@State private var canSleep: Bool = false
@State private var canDance: Bool = false
@State private var canEntertain: Bool = false
按钮
Section(header: Text("Action".uppercased())) {
HStack {
Button(action: {self.canEat.toggle()}){Image("ToEat").foregroundColor(self.canEat ? .green : .red)}
Spacer()
Button(action: {self.canDrink.toggle()}){Image("ToDrink").foregroundColor(self.canDrink ? .green : .red)}
Spacer()
Button(action: {self.canSleep.toggle()}){Image("ToSleep").foregroundColor(self.canSleep ? .green : .red)}
Spacer()
Button(action: {self.canDance.toggle()}){Image("ToDance").foregroundColor(self.canDance ? .green : .red)}
Spacer()
Button(action: {self.canEntertain.toggle()}){Image("ToEntertain").foregroundColor(self.canEntertain ? .green : .red)}
Spacer()
}
}
问题是当我切换一个时,它们都切换在一起......
如果我在下面创建另一个 VStack 并添加一个实际切换
VStack{
Toggle(isOn: $canEat) {
Image("ToEat")
}
}
然后我只能切换一个。
想法为什么?我怎么能解决这个问题?
谢谢,尼古拉斯
解决方案
您可以移动action
到TapGesture
.
Form{
Section(header: Text("Action".uppercased())) {
HStack {
Button(action: {}){Image("image").foregroundColor(self.canEat ? .green : .red)}.onTapGesture {
self.canEat.toggle()
}
Spacer()
Button(action: {}){Image("image").foregroundColor(self.canDrink ? .green : .red)}.onTapGesture {
self.canDrink.toggle()
}
Spacer()
Button(action: {}){Image("image").foregroundColor(self.canSleep ? .green : .red)}.onTapGesture {
self.canSleep.toggle()
}
Spacer()
Button(action: {}){Image("image").foregroundColor(self.canDance ? .green : .red)}.onTapGesture {
self.canDance.toggle()
}
Spacer()
Button(action: {}){Image("image").foregroundColor(self.canEntertain ? .green : .red)}.onTapGesture {
self.canEntertain.toggle()
}
Spacer()
}
}
}
推荐阅读
- .net - 如何在 csproj 文件中包装 MSBuild 错误任务的长文本
- asp.net-core - 无法使用 Jmeter 中的 Single Read Sampler 从 .net 核心信号器服务器读取文本
- java - 将 httpBasic 与 AuthenticationEntryPoint 一起使用
- typescript - 用于映射数组元素的 RxJS 运算符
- syntax - pub struct 属性上的“结构的字段‘0’是私有的”错误
- javascript - 使用 Lodash 链接或函数式 JS 挑战的数据操作
- google-chrome-extension - 调试时如何使用 chrome 黑盒内容脚本?
- python - 使用索引切片打印字符串中的每个单词
- docker - 从正在运行的容器创建 docker 映像
- javascript - 如何导出多个融合图以分离图像文件