【问题标题】:App got stuck when switching the UISwith on Xcode 11 and iOS 13在 Xcode 11 和 iOS 13 上切换 UISwith 时应用卡住了
【发布时间】:2020-02-03 20:41:25
【问题描述】:

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

但是现在我的应用程序不接受任何触摸事件,或者在我转动UISwitch 时它卡住了。 然后我从UISwitch 中删除了所有连接,以检查错误是否来自我的代码。但我仍然遇到同样的问题。

有没有人想办法解决这个问题?提前致谢。

【问题讨论】:

  • 这个可以附加项目吗,
  • 是的,可以。但是每当我更改开关位置时,应用程序就会卡住。而且我尝试使用新开关而不提供插座,那时也会出现同样的问题。
  • @Gregory - 我理解它的一些 UI 层次结构错误
  • @Anbu.Karthik - 有什么解决方案
  • 我也做了同样的事情,对我来说效果很好,请添加一些视频,否则,它很容易理解场景。

标签: ios swift touch-event uiswitch xcode11


【解决方案1】:

好吧,我在运行 iOS 13 的设备上遇到了完全相同的问题,当我开始运行 Xcode 11 时。问题(至少对我而言)是 Apple(可能)针对“valueChanged”的问题进行了错误修复挂钩到 UISwitch,请参阅:

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

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

【讨论】:

    猜你喜欢
    • 2020-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-15
    • 2020-04-30
    • 1970-01-01
    • 2015-05-17
    • 2020-03-18
    相关资源
    最近更新 更多