ios - 在 Xcode 11 和 iOS 13 上切换 UISwith 时应用卡住了
问题描述
我已经将我的 Xcode 从版本 10 更新到了 11。
但是现在我的应用程序不接受任何触摸事件,或者在我转动UISwitch
. 然后我删除了所有连接UISwitch
以检查错误是否来自我的代码。但我仍然遇到同样的问题。
有人有解决这个问题的想法吗?提前致谢。
解决方案
好吧,我在运行 iOS 13 的设备上遇到了完全相同的问题,当我开始运行 Xcode 11 时。问题(至少对我而言)是 Apple(可能)针对“valueChanged”挂钩的问题进行了错误修复UISwitch,见:
- iOS7 UISwitch its Event ValueChanged: 连续调用是这个Bug还是什么..?
- 从 IBAction 以编程方式设置 UISwitch isOn 再次调用 IBAction
不管怎样,之前发生的事情是开关的动作被触发了两次,所以我(显然)自己将开关设置为正确的状态。像这样:
@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 代码相反。
推荐阅读
- javascript - 在 swiper js 中更改幻灯片时隐藏元素
- c# - 字体图标文件在 iOS 14.8 中停止工作
- firebase - 如何使用颤振在 Firebase 分析中获取事件的总时间
- java - 3个布局在一个活动中
- machine-learning - Keras - 拟合日志中的验证分数不正确
- sapui5 - 如何在 odata(用于 fiori)中创建通过 cds 视图创建的函数导入?
- go - 查找当前主模块的伪版本
- ethereum - Solidity:从已部署的合约中调用函数恢复
- r - R中MICE包的被动插补语法
- amazon-web-services - 将现有用户池添加到 SAM 中的 lambda 触发器