So habe ich eine MainTableView des Typs ExpyTableView (https://github.com/okhanokbay/ExpyTableView). Alles in Ordnung, ich habe es implementiert und es funktioniert, aber wie es im gif unten zu sehen ist, muss ich +1 zusätzliche Aktion für DidSelect und DidDeselect machen.Erweitern Sie Tabellenansicht Zelle, wenn ausgewählt und kompakt, wenn nicht ausgewählt Swift 3
Die Sache ist, ich will, wenn sie mit der grünen Farbe markieren ausgewählt und sofort die anderen Zeilen zu erweitern, und wenn auf sie direkt nach abzuwählen und machen Sie die Zeile wieder normal angeklickt. Normalerweise muss dies nur nach 2 Tippen auf dem Bildschirm geschehen ... stattdessen mache ich 4, wie im gif zu sehen ist.
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
//MARK : Print
print("Selected Section \(indexPath.section), Row : \(indexPath.row)")
///////////////
if let cell = tableView.cellForRow(at: indexPath) {
if (indexPath.section == 1) || (indexPath.section == 2) || (indexPath.section == 3) {
cell.layer.borderWidth = 2.0
cell.layer.borderColor = Theme.defaultColor().cgColor
cell.layer.shadowOffset = CGSize.init(width: 0.5, height: 0.5)
}
}
}
func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
if let cell = tableView.cellForRow(at: indexPath) {
tableView.deselectRow(at: indexPath, animated: false)
cell.layer.borderWidth = 0.1
cell.layer.borderColor = UIColor.lightGray.cgColor
}
}
Wo bin ich falsch gelaufen? THANKS
Hallo, und was ist das Problem? Bitte aktualisieren Sie die Beschreibung mit genauem Problem und erwartetem Ergebnis. Ich denke, es ist, dass die Zelle markiert bleibt (nicht den gesamten Inhalt hervorhebt) und Lichter erst nach dem Abwählen, nicht wahr? So erwartete Ergebnis wäre: 1. Markieren Sie 2. Machen Sie die gesamte Zelle einschließlich der Erweiterung markiert? 3. Aufheben der Abwahl (Kollaps) Bin ich richtig? Wenn nicht, bitte aktualisieren Sie die Beschreibung. –
Wie gesagt, wenn auf die Zeile geklickt wurde, um sie hervorzuheben und zu erweitern. Zum Abwählen klicken Sie erneut auf den Zeilenkontrakt und erhalten den Standard-Layer.border. Dies sollte mit nur 2 Hähnen gemacht werden. Stattdessen in meinem aktuellen Projekt ist dies in 4 Schritten gemacht, wie in der gif –