ios - UISwitch 值更改状态问题
问题描述
我UISwitch
在我的应用程序中使用了valueChanged
如下代码的目标。这个开关在我的UITableView
settingsTableCell.androidSwitchSmall.addTarget(self, action: #selector(switchStateChanged(_:)), for: .valueChanged)
@objc func switchStateChanged(_ mjSwitch: MJMaterialSwitch) {
if self.lastSwitchState == mjSwitch.isOn {
return
}
self.lastSwitchState = mjSwitch.isOn
print(mjSwitch.isOn, mjSwitch.tag, "Small")
self.changeTrackStatus()
}
我正在更改目标方法中 Switch 的值。所以它再次调用switchStateChanged
方法。
但我只想switchStateChanged
在用户更改开关状态时调用此方法。
什么可能是最好的方法。
我如何区分天气用户更改了开关状态或开关状态以编程方式更改。
解决方案
你为什么不使用 .touchUpInside 。这只会在用户与 switch 交互时触发选择器。
settingsTableCell.androidSwitchSmall.addTarget(self, action: #selector(switchStateChanged(_:)), for: .touchUpInside)
推荐阅读
- netsuite - 如何在一行上为客户列出我的销售代表?
- python - WebScraping A Table 不适用于 Python Beautiful Soup
- excel - Excel VBA使用另一个字段作为文件名将数据从表导出到文本文件
- flutter - Flutter 必须向 Text 小部件提供非空字符串
- amazon-web-services - DynamoDB 投影表达式 - 从子集合中选择属性
- java - 在片段中创建 Toast 后出现空指针异常
- javascript - 如何在数组中存储动态创建的选中复选框?
- html - 弯曲方向:柱;不在@media 风格规则中工作
- cordova - 如何在 Apache Cordova 应用程序中允许远程图像 src URL
- python - 从python源代码中提取完整的日志语句