在 header 节上做与单元格相同的动画
Do same animation on header secton than cell
我按照 Brian Advent https://www.youtube.com/watch?v=FpTY04efWC0 的教程为我的 TableView 制作动画,但他的动画只能在单元格上运行,我如何才能在 3 个部分上制作相同的动画 headers?
这是单元格上的动画
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
}
}
嗯,这是可能的,但它很棘手,需要额外的操作。
动画的工作方式是获取当前 window 上的所有可见单元格,遍历每个单元格,然后为每个单元格应用动画。你的 header 没什么特别的,它就像一个普通的单元格,它们都只是视图。因此,您在这里需要做的就是将 header 添加到单元格数组中的正确位置,然后简单地遍历它们并制作动画。
获取所有单元格后,遍历它们并检查它们在哪个部分。假设您发现它们来自第 0、1 和 2 部分。那么您需要通过调用此方法获取这三个部分的单元格
let header = tableView.headerViewForSection(section: index) as! HeaderView
然后您需要将这些部分添加到元胞数组中的相应位置。所以你的元胞数组最终看起来像
header0 - cell0 - cell1 - cell2 - header1 - cell0 - cell1 - header2 - cell0
最后,运行 你的其余代码循环遍历它们并一个一个地应用动画。
我按照 Brian Advent https://www.youtube.com/watch?v=FpTY04efWC0 的教程为我的 TableView 制作动画,但他的动画只能在单元格上运行,我如何才能在 3 个部分上制作相同的动画 headers?
这是单元格上的动画
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
}
}
嗯,这是可能的,但它很棘手,需要额外的操作。
动画的工作方式是获取当前 window 上的所有可见单元格,遍历每个单元格,然后为每个单元格应用动画。你的 header 没什么特别的,它就像一个普通的单元格,它们都只是视图。因此,您在这里需要做的就是将 header 添加到单元格数组中的正确位置,然后简单地遍历它们并制作动画。
获取所有单元格后,遍历它们并检查它们在哪个部分。假设您发现它们来自第 0、1 和 2 部分。那么您需要通过调用此方法获取这三个部分的单元格
let header = tableView.headerViewForSection(section: index) as! HeaderView
然后您需要将这些部分添加到元胞数组中的相应位置。所以你的元胞数组最终看起来像
header0 - cell0 - cell1 - cell2 - header1 - cell0 - cell1 - header2 - cell0
最后,运行 你的其余代码循环遍历它们并一个一个地应用动画。