swiftui - SwiftUI 自定义切换样式问题
问题描述
我在 XCode 12.3 上工作。我想构建一个视图,包括两个子视图,来自同一结构的实例。
此结构包含具有自定义样式的切换:显示状态为打开/关闭挂锁。
我的问题是,当我运行应用程序并处理切换时,显示屏会在子视图的两个实例上显示状态更改。好像他们的状态受到了某种约束。
此外,当我删除自定义的切换样式(仅此而已)时,我的切换正常工作。
有人知道我错在哪里吗?以及我应该如何处理独立的切换状态?谢谢 !
这是我的代码:
父视图:
struct ParentView: View {
var body: some View {
VStack(alignment: .leading) {
ChildView()
ChildView()
}
}
}
子视图:
struct RepasView: View {
@State private var isLocked: Bool = false
var body: some View {
Toggle("",isOn: $isLocked)
.labelsHidden()
.toggleStyle(LockToggleStyle())
}
}
自定义切换样式:
struct LockToggleStyle: ToggleStyle {
func makeBody(configuration: Configuration) -> some View {
Button {
configuration.isOn.toggle()
} label: {
Label {
configuration.label
} icon: {
Image(systemName: configuration.isOn ? "lock": "lock.open")
}
}
}
}
解决方案
推荐阅读
- javascript - 系列中的子弹图在 y 值之后不显示
- python - 使用 mongoDB 在 Flask 应用程序中向 JSON 添加转义引号
- android-studio - Android Studio 未知的方面类型
- android - 什么广告框架允许用户通过安装其他应用获得奖励?
- javascript - 如何从节点js中的日期获取月份和年份
- angular - 在输入字段中显示选定的对象值
- pytorch - 通过转换将频道添加到 MNIST?
- r - 尝试构建神经网络时出错
- bash - 将第一个字符与特殊字符分隔符一起转换为大写
- spring-boot - 黄瓜运行@SpringBootApplication.main 方法