2017-07-08 49 views
0


我按照Brian Advent https://www.youtube.com/watch?v=FpTY04efWC0的教程來動畫我的TableView,但他的動畫只能在單元格上工作,我如何在3節的標題上做同樣的動畫?在單元格區域上執行的動畫與單元格相同

這是對細胞

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 
    } 
} 

回答

1

嗯,這是可能的動畫,但它的棘手,需要額外的操作。

動畫的工作方式是它獲取當前窗口中的所有可見單元格,循環遍歷每個單元格,然後爲每個單元格應用動畫。你的標題沒什麼特別的,它就像一個普通的單元格,它們都只是視圖。所以你需要在這裏做的是添加標題到你的單元格數組中的正確位置,然後簡單地遍歷它們並完成動畫。

獲得所有單元格後,循環遍歷它們並檢查它們是哪一部分。假設您發現它們來自第0,1和2部分。然後您需要通過調用這個

來獲取這三部分的單元格
let header = tableView.headerViewForSection(section: index) as! HeaderView 

然後,您需要將這些部分添加到您的單元格陣列中的相應位置。所以你的電池陣列將最終看起來像

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

最後,他們通過運行代碼的循環其餘部分,由一個動畫應用之一。

相關問題