gpt4 book ai didi

ios - UISwitch 值更改状态问题

转载 作者:行者123 更新时间:2023-11-29 05:52:50 31 4
gpt4 key购买 nike

我在我的应用程序中使用了 UISwitchvalueChanged 目标,如下代码所示。这个开关在我的 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 此方法。

最好的方法是什么。

如何区分用户更改了开关状态还是以编程方式更改了开关状态。

最佳答案

按照步骤操作。

Step - 1

TabelView Cell内创建一个变量

var Btn1 : (()->())? 

Step - 2

TabelViewCell内创建UIButton的Action并调用上面的Variable

@IBAction func cellbtn(_ sender: UIButton) {
Btn1?()
}

Step - 3

在您的 View Controller 中声明一个Bool变量和您的函数

var IsSwitchOn = false

func switchStateChanged(_ mjSwitch: MJMaterialSwitch) {
if self.IsSwitchOn {
return
}
self.IsSwitchOn = True
print(mjSwitch.isOn, mjSwitch.tag, "Small")
self.changeTrackStatus()
}

Step - 4

cellForRowAt indexPath中调用它。

let cell = tableView.dequeueReusableCell(withIdentifier: "CellID") as! YourCell

cell.Btn1 = {
() in
Self.switchStateChanged()
}

希望这有效。

关于ios - UISwitch 值更改状态问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55513816/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com