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
Antwort
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.
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. –
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
tableView.cellForRowAtIndexPath(NSIndexPath(forRow: (indexPath.row + 1) % 2, inSection: 0))?.userInteractionEnabled = false
}
Nein, das ist eine UITableViewDelegate-Methode, und Sie können nicht steuern, welche Elemente auswählbar sind oder nicht. –
Haben Sie die 'Auswahl' von' UITableViewCell' überprüft? –
Sie können Array von Bools pflegen und Wert aktualisieren, wenn Sie aktivieren und deaktivieren müssen –
senden Sie mir Ihre E-Mail-ID. Ich werde dir eine Demo schicken. –