2016-07-27 19 views
0

Ich habe eine benutzerdefinierte UITableViewCell erstellt. Ich habe nur zwei Zeilen in meiner TableView. Jetzt möchte ich die zweite Zelle deaktivieren, wenn die erste geklopft ist und die erste Zelle deaktivieren, wenn die zweite geklopft wird. Wie kann ich das tun? Bitte helfen und führen SieSo deaktivieren Sie eine bestimmte TabelleView-Zelle in IOS Swift

+0

Haben Sie die 'Auswahl' von' UITableViewCell' überprüft? –

+0

Sie können Array von Bools pflegen und Wert aktualisieren, wenn Sie aktivieren und deaktivieren müssen –

+0

senden Sie mir Ihre E-Mail-ID. Ich werde dir eine Demo schicken. –

Antwort

2

Implementieren Sie die UITableViewDelegate Methode willSelectRowAtIndexPath.

Geben Sie in dieser Methode den indexPath Wert zurück, der an Sie übergeben wurde, wenn der Benutzer sie auswählen soll, oder geben Sie nil zurück, wenn Sie nicht auswählbar sein möchten.

Ich überlasse es Ihnen, die Logik herauszufinden, die entscheidet, wenn verschiedene Zellen nicht auswählbar sein sollten/sollten.

+0

Warum prüfen Sie es nicht mit der 'shouldHighlight' Methode? logisch, ich nehme an, es ist besser als die Rückgabe eines Null Indexpfad, bitte Beratung. Vielen Dank im Voraus. –

0
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    tableView.cellForRowAtIndexPath(NSIndexPath(forRow: (indexPath.row + 1) % 2, inSection: 0))?.userInteractionEnabled = false 
} 
+0

Nein, das ist eine UITableViewDelegate-Methode, und Sie können nicht steuern, welche Elemente auswählbar sind oder nicht. –