获取 table 视图单元格 swift 内 uiswitch 值更改时的标签值
get label value on uiswitch value change inside table view cell swift
我有一个带有标签和开关的 UITableviewcell。
单元格标签根据情况具有动态值。
当我on/off切换时。它只是显示标签显示哪一行开关状态发生了变化。但我想准确了解标签上的开关是 on/off.
switchView.tag = indexPath.row // for detect which row switch Changed
switchView.addTarget(self, action: #selector(self.switchChanged(_:)), for: .valueChanged)
//switch value change function
@objc func switchChanged(_ sender : UISwitch!){
print("table row switch Changed \(sender.tag)")
//looking for label text on this tag
}
当 tableview 单元格内的开关状态发生变化时,有什么方法可以获取单元格标签值。
在 UItableViewCell 中声明以下闭包变量
var returnBlock: ((String?)-> Void)?
并且在 switch 方法中只需使用 labelObj.text
调用它
@objc func switchChanged(_ sender : UISwitch!){
returnBlock?(labelObject.text)
}
在 TableViewController - CellForRowAtIndexPath 方法中,您在 return 单元格之前编写以下代码。
cell.returnBlock = { labelText in
if let value = labelText {
print(value)
}
}
有很多方法可以做,但我认为这是正确的方法。
对于默认的 UITableViewCell
@objc func switchChanged(_ sender : UISwitch!){
if let cellObj = tableView.cellForRow(at: IndexPath(row: sender.tag, section: 0)) as? UITableViewCell {
print(\(cellObj.labelObj.text ?? ""))
}
}
我有一个带有标签和开关的 UITableviewcell。
单元格标签根据情况具有动态值。
当我on/off切换时。它只是显示标签显示哪一行开关状态发生了变化。但我想准确了解标签上的开关是 on/off.
switchView.tag = indexPath.row // for detect which row switch Changed
switchView.addTarget(self, action: #selector(self.switchChanged(_:)), for: .valueChanged)
//switch value change function
@objc func switchChanged(_ sender : UISwitch!){
print("table row switch Changed \(sender.tag)")
//looking for label text on this tag
}
当 tableview 单元格内的开关状态发生变化时,有什么方法可以获取单元格标签值。
在 UItableViewCell 中声明以下闭包变量
var returnBlock: ((String?)-> Void)?
并且在 switch 方法中只需使用 labelObj.text
调用它 @objc func switchChanged(_ sender : UISwitch!){
returnBlock?(labelObject.text)
}
在 TableViewController - CellForRowAtIndexPath 方法中,您在 return 单元格之前编写以下代码。
cell.returnBlock = { labelText in
if let value = labelText {
print(value)
}
}
有很多方法可以做,但我认为这是正确的方法。
对于默认的 UITableViewCell
@objc func switchChanged(_ sender : UISwitch!){
if let cellObj = tableView.cellForRow(at: IndexPath(row: sender.tag, section: 0)) as? UITableViewCell {
print(\(cellObj.labelObj.text ?? ""))
}
}