未触发Swiftui切换
我创建了一个简单的swiftui视图,其中包含一个带有文本和切换的简单vstack。我无法理解如何触发切换的更改,因为我开发的方法不起作用 这是密码未触发Swiftui切换,swiftui,touch,toggle,ios13,Swiftui,Touch,Toggle,Ios13,我创建了一个简单的swiftui视图,其中包含一个带有文本和切换的简单vstack。我无法理解如何触发切换的更改,因为我开发的方法不起作用 这是密码 struct SquadMemberDetailView: View { @State var admin = false var body: some View { VStack(alignment: .leading) { Text("Amministratore&q
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)
}
}
}
当我切换切换状态时,永远不会调用ontapsignature方法
有什么想法吗?切换绑定变量本身的更改您不应该手动执行,所以我相信您希望 SwiftUI 2.0+:
Toggle("", isOn: $admin)
.onChange(of: admin) { _ in
manageToggle()
}
.labelsHidden()
.padding(.horizontal)
import Combine
...
Toggle("", isOn: $admin)
.onReceive(Just(admin)) { _ in
manageToggle()
}
SwiftUI 1.0:
Toggle("", isOn: $admin)
.onChange(of: admin) { _ in
manageToggle()
}
.labelsHidden()
.padding(.horizontal)
import Combine
...
Toggle("", isOn: $admin)
.onReceive(Just(admin)) { _ in
manageToggle()
}
onchange仅在iOS 14中可用:(现在它可以工作,但在第一次设置状态变量时也会调用它