2017-07-08 11 views
0

Ich folgte dem Tutorial von Brian Advent https://www.youtube.com/watch?v=FpTY04efWC0 zu meinem TableView animieren, aber seine Animation funktioniert nur auf Zelle, wie kann ich die gleiche Animation auf 3 Sektionen Header tun?Tun Sie die gleiche Animation auf Headersekton als Zelle

Dies ist die Animation auf Zelle

func Animation(){ 
    TableViewContent.reloadData() 
    let cells = TableViewContent.visibleCells 

    let TableViewHeight = TableViewContent.bounds.size.height 

    for cell in cells{ 
     cell.transform = CGAffineTransform(translationX: 0, y:TableViewHeight) 
    } 

    var delayCounter = 0.0 
    for cell in cells{ 
     UIView.animate(withDuration: 1.75, delay: delayCounter * 0.05, usingSpringWithDamping: 0.8, initialSpringVelocity: 0, options: .curveEaseInOut, animations: { 
     cell.transform = CGAffineTransform.identity}, completion: nil) 
     delayCounter += 1 
    } 
} 

Antwort

1

Gut, das ist möglich, aber es ist schwierig, und zusätzliche Operationen benötigt.

Die Art und Weise, wie Ihre Animation funktioniert, besteht darin, dass alle sichtbaren Zellen im aktuellen Fenster angezeigt werden, eine Schleife durch jeden von ihnen gezogen wird und dann eine Animation für jeden von ihnen angewendet wird. Dein Header ist nichts besonderes, es ist wie eine normale Zelle, sie sind alle nur Ansichten. Alles, was Sie hier tun müssen, ist, die Kopfzeile an die richtige Position in Ihrem Zellenarray zu setzen und sie dann einfach durchzuschleifen und die Animation auszuführen.

Nachdem Sie alle Zellen erhalten haben, durchlaufen Sie sie und überprüfen Sie, in welchem ​​Abschnitt sie sich befinden. Sagen Sie, dass sie aus Abschnitt 0, 1 und 2 stammen. Dann müssen Sie Zellen für diese drei Abschnitte abrufen, indem Sie

aufrufen
let header = tableView.headerViewForSection(section: index) as! HeaderView 

Dann müssen Sie diese Abschnitte an der entsprechenden Stelle in Ihrem Zellenfeld hinzufügen. Also Ihr Zellenfeld wird schließlich aussehen wie

header0 - cell0 - cell1 - cell2 - header1 - cell0 - cell1 - header2 - cell0 

schließlich den Rest des Codes zu Schleife durch sie laufen und Animation nacheinander anwenden.

Verwandte Themen