2016-07-24 10 views
1

Ich verwende M13Checkbox, und Sie können die Github Seite here betrachten. In meiner Tabellenansicht-Funktion weise ich der Checkbox-Variable jeder Zelle eine M13-Checkbox zu. Die Variable sieht in meiner benutzerdefinierten Zellklasse wie folgt aus: var checkbox = M13Checkbox().Kontrollkästchen Ausgewählte Aktion in Swift?

Dies ist, was der Code, wo ich das Kontrollkästchen in der Tabellenansicht definieren aussieht:

cell.checkbox = M13Checkbox(frame: CGRect(x: 15.0, y: (cell.center.y)-22.0, width: 20.0, height:20.0)) 
view.addSubview(cell.checkbox) 

Meine Frage ist, wie habe ich eine Aktion treten auf, wenn ein Benutzer eine Checkbox drückt? Ich möchte eine andere Ansicht oder ein Popover, wenn ein Kontrollkästchen angeklickt wird. Ist das möglich mit der Art, wie ich es eingerichtet habe? Welchen Code muss ich hinzufügen?

Antwort

2

M13Checkbox ist von UIControl abgeleitet, daher können Sie die addTarget-Funktion verwenden, um einem Ereignis einen Handler hinzuzufügen.

cell.checkBox.tag = indexPath.row 

cell.checkBox.addTarget(self, action: #selector(YourClassName.onValueChanged(_:)), forControlEvents: UIControlEvents.ValueChanged) 

... 

func onValueChanged(sender : AnyObject?) 
{ 
    if let checkBox = sender?.view as? M13Checkbox 
    { 
    let row = checkBox.tag 
    } 
} 
+0

Gibt es eine Möglichkeit, dass ich dann herausfinden kann, in welcher Zeile/welcher Zelle die Schaltfläche geklickt wurde? –

+0

Wenn Sie dies tun möchten, müssen Sie die Zeile in der Tag-Eigenschaft des Kontrollkästchens speichern. Ich habe meine Antwort aktualisiert. –

+0

Danke! Genau das habe ich gesucht! –

Verwandte Themen