Comment puis-je incorporer un UISwitch
par programme dans une cellule tableView dans Swift? Je le fais comme ça
let shareLocationSwitch = UISwitch()
cell.accessoryView = shareLocationSwitch
Voici comment incorporer un UISwitch
dans une cellule 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
}
voici la méthode de changement d'appel d'appel
func switchChanged(_ sender : UISwitch!){
print("table row switch Changed \(sender.tag)")
print("The switch is \(sender.isOn ? "ON" : "OFF")")
}
@LeoDabus
Great! explanation
.
Remarque: si votre tableview
peut avoir plus d'un section
alors vous devez créer un sous-classement CustomCell UITableViewCell
et configurer votre accessoryView
inside UITableViewCell
awakeFromNib
méthode au lieu de la vue table cellForRowAt
méthode. Lors de la mise en file d'attente du cell
réutilisable, transformez-le en votre CustomCell Voici un exemple de @LeoDabus