[在Xcode 11和iOS 13上切换UISwith时应用卡住了

问题描述 投票:0回答:1

我已经将Xcode从版本10更新到了11。但是现在我的应用程序不接受任何触摸事件,或者在我打开UISwitch时卡住了。然后,我从UISwitch删除了所有连接,以检查错误是否出自我的代码。但是我仍然遇到同样的问题。是否有人有解决此问题的想法。预先感谢。

ios swift touch-event uiswitch xcode11
1个回答
0
投票

[好吧,在运行iOS 13的设备上以及开始运行Xcode 11的设备上,我都遇到了完全相同的问题。(至少对我来说)问题是,苹果(很可能)通过“ valueCahnged”钩子解决了该问题到UISwitch,请参见:

不管怎样,之前发生的事情是两次触发了开关的动作,所以我(显然)自己将开关设置为正确的状态。像这样:

@IBAction func notificationsSwitchTapped(_ sender: UISwitch) {
    if sender.isOn{
        notificationsSwitch.setOn(false, animated: true)
    }else{
        notificationsSwitch.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代码相反。

© www.soinside.com 2019 - 2024. All rights reserved.