Ich versuche, eine Tabellenansichtszelle zu erweitern, wenn Sie darauf tippen. Wenn es erneut angezapft wird, möchte ich, dass es in seinen ursprünglichen Zustand zurückkehrt.Erweitern und verengen Sie die Tabellenansichtszelle, wenn Sie darauf tippen, in swift
Wenn cellA erweitert wird und cellB angezapft wird, möchte ich cellA zusammenziehen und cellB zur gleichen Zeit erweitern. Damit kann zu jedem Zeitpunkt nur eine Zelle in ihrem expandierten Zustand sein.
Mein aktueller Code:
class MasterViewController: UITableViewController {
var isCellTapped = false
var currentRow = -1
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
selectedRowIndex = indexPath
tableView.beginUpdates()
tableView.endUpdates()
}
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if indexPath.row == selectedRowIndex.row {
if isCellTapped == false {
isCellTapped = true
return 140
} else if isCellTapped == true {
isCellTapped = false
return 70
}
}
return 70
}
Aktuelle Code funktioniert gut, wenn:
- Sie eine Zeile tippen (es erweitert)
- Sie es tippen Sie erneut (kontrahiert)
Es schlägt fehl, wenn:
- Sie tippen, um eine Reihe (es erweitert)
- Sie tippen eine weitere Zeile (es Verträge, aber die andere Reihe sich nicht ausdehnt)
Wie kann ich dieses Problem lösen?
Was möchten Sie erreichen? Ein Akkordeonmenü (Dropdown-Menü) mit einem 'UITableView'? –
Ja @VictorSigler, so etwas. Denkst du, dass mit UITableView getan werden kann? Oder gibt es andere Klassen, die besser zu dieser Aufgabe passen? –
Ja, Sie können @Diego meine Antwort sehen. –