>我已经将我的 Xcode 从版本 10 更新到 11。
但是现在我的应用程序不接受任何触摸事件,或者在我转动UISwitch
时卡住。 然后我从UISwitch
中删除了所有连接,以检查错误是否来自我的代码。但我仍然遇到同样的问题。
有人有解决这个问题的想法吗?提前谢谢。
好吧,我在运行iOS 13的设备上遇到了完全相同的问题,当我开始运行Xcode 11时。问题(至少对我来说(是Apple(可能(针对UISwitch的"valueChanged"钩子的问题进行了错误修复,请参阅:
- iOS7 UISwitch 其事件值已更改:连续调用是这个错误还是什么..?
- 从 IBAction 再次调用 IBAction 以编程方式设置 UISwitch is On
无论哪种方式,之前发生的事情是开关的操作被触发了两次,所以我(显然(自己将开关设置为正确的状态。喜欢这个:
@IBAction func notificationsSwitchTapped(_ sender: UISwitch) {
if sender.isOn{
sender.setOn(false, animated: true)
}else{
sender.setOn(true, animated: true)
}
}
但是从iOS 13 Xcode 11开始,"valueChanged"UISwitch错误得到了修复,我正在检查的.isOn((值实际上已经是新值:
@IBAction func notificationsSwitchTapped(_ sender: UISwitch) {
if sender.isOn{
// The switch has been turned on
}else{
// The switch has been turned off
}
}
长话短说,您的开关之前可能被调用了两次,因此您的 UISwitch 状态布尔值与您的 Xcode 11 iOS 13 代码相反。