如何UISwitch在Swift中的tableView单元中以编程方式嵌入?我就是那样做
UISwitch
let shareLocationSwitch = UISwitch() cell.accessoryView = shareLocationSwitch
这是您可以UISwitch在UITableView单元格上嵌入的方法。
UITableView
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { var cell = tableView.dequeueReusableCell(withIdentifier: "yourcellIdentifire", for: indexPath) as! YourCellClass //here is programatically switch make to the table view let switchView = UISwitch(frame: .zero) switchView.setOn(false, animated: true) switchView.tag = indexPath.row // for detect which row switch Changed switchView.addTarget(self, action: #selector(self.switchChanged(_:)), for: .valueChanged) cell.accessoryView = switchView return cell }
这是切换调用贝克方法
func switchChanged(_ sender : UISwitch!){ print("table row switch Changed \(sender.tag)") print("The switch is \(sender.isOn ? "ON" : "OFF")") }
@LeoDabus Great! explanation。
Great! explanation
注意:如果您tableview可能有多个,section则应创建一个CustomCell子类UITableViewCell并配置您的accessoryView内部UITableViewCell awakeFromNib方法而不是表视图cellForRowAt方法。当将可重用cell的队列释放出队列时,将其投射到您的CustomCell中这是@LeoDabus的示例
tableview
section
UITableViewCell
accessoryView
awakeFromNib
cellForRowAt
cell