0

Ich habe derzeit eine UITableView mit einer Zeile, die 0.0 zurückgibt, die dann erweitert wird, wenn der Benutzer auf einen "show more" -Button tippt. Wenn das passiert, gibt die obige Zeile einen bestimmten Wert zurück, der von der Höhe des Containers abhängt, was sofort passiert. Was ich gerne machen würde, ist eine Art Animation davon zu erstellen, während es erweitert/verkleinert wird.Swift: Animiere expandierende Zeilen in einem UITableView?

Hier ist mein Code im Moment:

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 

    if indexPath.row == 2 && self.numberOfElements >= 2 { 
     if detailsVisible == false { 
      self.showMoreLabel.text = "Show more (\(self.numberOfElements - 1))" 
      return 0.0 
     } 
     else { 
      self.showMoreLabel.text = "Show less" 
      return embedKonteringHeight 
     } 
    } 
} 

Wo var detailsVisible gibt einen bool wenn der erweiterbare Inhalt angezeigt wird oder nicht.

Gibt es eine einfache Möglichkeit, dies zu animieren? Ich dachte etwas wie eine einfache Zähler erhöhen/verringern, die von heightForRowAtIndexPath innerhalb eines Intervalls zurückgegeben wird.

Antwort

3

Okay, nach einigen Recherchen habe ich eine Methode gefunden, die sehr gut funktioniert. Ich werde es hier posten, falls jemand die Antwort wissen möchte.

In DidSelectRowAtIndexPath, ich brauche nur

tableView.reloadData() 

mit

tableView.beginUpdates() 
tableView.endUpdates() 
zu ersetzen
Verwandte Themen