ios - 在标题部分做与单元格相同的动画

标签 ios swift uitableview animation uitableviewsectionheader


我遵循了 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
    }
}

最佳答案

嗯,这是可能的,但它很棘手,需要额外的操作。

动画的工作方式是获取当前窗口中的所有可见单元格,遍历每个单元格,然后为每个单元格应用动画。你的标题没什么特别的,它就像一个普通的单元格,它们都只是 View 。因此,您在这里需要做的就是将标题添加到单元格数组中的正确位置,然后简单地遍历它们并制作动画。

获取所有单元格后,遍历它们并检查它们在哪个部分。假设您发现它们来自第 0、1 和 2 部分。那么您需要通过调用此方法获取这三个部分的单元格

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

然后您需要将这些部分添加到元胞数组中的相应位置。所以你的元胞数组最终看起来像

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

最后,运行其余代码以循环遍历它们并一个一个地应用动画。

关于ios - 在标题部分做与单元格相同的动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44987175/

相关文章:

ios - 如何在 Swift 中获取前置摄像头?

ios - 如何从第二个 View Controller 获取表格 View 单元格文本标签到第一个 View Controller 的标签?

ios - 添加更多单元格后,某些表格 View 单元格变得不可见。为什么?

ios - 为 iOS 编译 yaml.swift 时遇到问题(为 OSX 构建良好)

ios - Swift 中的分割操作

ios - 每次 .insert() 或 .remove(at :) are called) 在 UserDefaults 中保存更新的 Set

ios - 使用代码 "setImage"设置按钮图像时出现问题

ios - 不显示来自解析的数据

iphone - 我可以限制 iPhone3G 使用我的 iPhone 应用程序吗?

iphone - NSMutableString:需要插入任何值而不是(null)