swiftui - Swiftui 切换未触发
问题描述
我创建了一个简单的 swiftui 视图,其中包含一个带有文本和切换的简单 vstack。我无法理解如何触发切换的更改,因为我开发的方法不起作用。
这是代码
struct SquadMemberDetailView: View {
@State var admin = false
var body: some View {
VStack(alignment: .leading) {
Text("Amministratore")
.font(.body)
.foregroundColor(Color("DarkGray"))
.padding([.top, .leading, .trailing])
Toggle(isOn: $admin){
}
.onTapGesture(perform: {
self.admin = !self.admin
manageToggle()
})
.labelsHidden()
.padding(.horizontal)
}
}
}
当我切换切换状态时,永远不会调用 onTapGesture 方法。
任何想法?
解决方案
Toggle 自己更改绑定变量,您不应该手动进行,所以我相信您想要类似的东西
SwiftUI 2.0+:
Toggle("", isOn: $admin)
.onChange(of: admin) { _ in
manageToggle()
}
.labelsHidden()
.padding(.horizontal)
SwiftUI 1.0:
import Combine
...
Toggle("", isOn: $admin)
.onReceive(Just(admin)) { _ in
manageToggle()
}
推荐阅读
- docusignapi - 将管理员用户添加到 powerforms DocuSign
- java - 翻转log4j时如何在旧日志文件名中使用文件创建日期
- vim - vim/gvim 格式 (%!column -t) 不起作用,而是过滤所有行
- typescript - 创建映射类型时引用索引类型?
- python - 在 python 中从 MediaCloud 中检索文本文章的正文
- opencv - Cuda opencv 需要更多时间
- scala - java.io.FileNotFoundException:文件不存在:hdfs://data.xxxxx.avro
- reactjs - 在 ReactJs 中动态地将值放入表中
- php - 使购物车页面上的 Woocommerce 商店消息在 6 秒后消失
- masstransit - 当消费者处于重试状态时停止总线以某种方式使消息移动到_skipped队列