2017-07-08 51 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 

最后,他们通过运行代码的循环其余部分,由一个动画应用之一。

相关问题