代码之家  ›  专栏  ›  技术社区  ›  Wide Angle Technology

在Xcode 11和iOS 13上切换UI时,应用程序卡住了

  •  0
  • Wide Angle Technology  · 技术社区  · 6 年前

    我已经将我的Xcode从版本10更新到了版本11。

    但现在我的应用程序不接受任何触摸事件,或者在我打开手机时卡住了 UISwitch . 然后,我删除了所有的连接 开关控件 检查错误是否来自我的代码。但我还是遇到了同样的问题。

    有人有办法解决这个问题吗?提前谢谢。

    0 回复  |  直到 6 年前
        1
  •  0
  •   Vasco    6 年前

    好吧,我在运行iOS 13的设备上遇到了完全相同的问题,当我开始运行Xcode 11时。问题是(至少对我来说)苹果(可能)用UISwitch的“valueChanged”钩子修复了这个问题,请参见:

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

    @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代码相反。