gpt4 book ai didi

ios - 从 UIViewController 类获取单元格中的 uiswitch 值

转载 作者:行者123 更新时间:2023-11-28 21:07:57 24 4
gpt4 key购买 nike

我有一个带有 UITableView 的 View Controller 。 TableView 有 2 个单元格。其中一个单元有一个 UISwitch。

在单元类中我声明了 UISwitch

    cellSwitch.addTarget(self, action: #selector(switchChanged), for: UIControlEvents.valueChanged)

还有一个函数

func switchChanged(mySwitch: UISwitch) {
let value = mySwitch.isOn
// Do something
print("mySwitch.isOn: \(value)")

}

我怎么知道我更改了哪个 UISwitch 实例。我在运行时有多个 forming

最佳答案

在创建单元格时,将数据源索引添加为 UISwitch 标记。

UISwitch值改变时,获取控件的标签值。并使用通过控制标记获取的索引值从数据源数组中获取数据。

您应该在 UIViewController 中实现 UISwitch 值更改方法。否则你必须将数据源数组传递给每个单元格,这并不好。

细胞创建

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

let cell = // Your code here ....

// Implement UISwitch action method in the UIViewController only.
cell.cellSwitch.addTarget(self, action: #selector(switchChanged), for: UIControlEvents.valueChanged)

cell.cellSwitch.tag = indexPath.row
return cell
}

开关值已更改:

func switchChanged(mySwitch: UISwitch) {

let value = mySwitch.isOn
// Do something
print("mySwitch.isOn: \(value)")

// tag will give you the index of the data model.
let index = mySwitch.tag

//dataSourceArray is your tableview data source array. You can't get this array from cell. so better you should implement UISwitch value change method in the UIViewController.
let model = dataSourceArray[index];

// Now you got the model to update based on switch value change.

}

关于ios - 从 UIViewController 类获取单元格中的 uiswitch 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44719671/

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