以下代码显示了一个 iOS 13 SwiftUI 切换示例。它在设备(iPhone XR(上运行,但在点击切换开关时会在日志中显示错误。我只在设备上观察到这一点,而不是实时预览。
import SwiftUI
struct ContentView: View {
@State private var foo = false
var body: some View {
Form{
Toggle(isOn: $foo, label: {
Text("Label")
})
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
错误是: 2019-09-2312:59:01.468146-0500 演示[640:40285] 提供给 CFRunLoopRunSpecific 的无效模式"kCFRunLoopCommonModes" - _CFRunLoopError_RunCalledWithInvalidMode中断以进行调试。此消息每次执行仅显示一次。
任何建议不胜感激。
在iPhone 8模拟器上切换时,我也会发生此错误。
没有遇到崩溃。
具有切换的单元格在移动时不会正确调整大小,但通过添加 Bool 并将其切换为单元格移动函数的一部分来避免这种情况 { 例如,triggerRefresh.toggle(( } 这种意外的用户行为可能与切换错误有关,也可能无关。
与 C K 相同, 没有遇到崩溃。
我使用单独的布尔变量获得了开关的值
var stateOfSwitch = false
并像这样为交换机使用了单独的@IBAction..
@IBAction func toggled(_ sender: UISwitch) {
stateOfSwitch = ! stateOfSwitch
}
请记住将 IBAction 链接到接口构建器中的开关元素。
并使用 stateOfSwitch 变量来实现您必须基于开关实现的任何逻辑。
我知道这是一个解决方法,希望很快就不需要了。
不知道如何在 SwiftUI 中执行此操作。