首页 > 解决方案 > 动画多个原型表视图单元格

问题描述

我有两个原型单元格myTableView,即myTableViewCellmyHeaderCell。我正在使用willDisplay cell动画方法如下

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
    let rotationTransform = CATransform3DTranslate(CATransform3DIdentity, -500, 10, 0)
    cell.layer.transform = rotationTransform

    UIView.animate(withDuration: 1.0, animations : { () -> Void in
        cell.layer.transform = CATransform3DIdentity
    })
}

但只是myTableViewCell动画而不是myHeaderCell。如何使两个原型单元同时动画?

我在 willDisplayHeaderView 方法中添加了以下代码,但仍然没有工作

func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {

    let cell = tableView.dequeueReusableCell(withIdentifier: "myHeaderCell") as! HeaderCell
    let rotationTransform = CATransform3DTranslate(CATransform3DIdentity, -500, 10, 0)
    cell.layer.transform = rotationTransform
    UIView.animate(withDuration: 1.0, animations : {() -> Void in
        cell.layer.transform = CATransform3DIdentity
    })
}

标签: swiftxcodeuitableview

解决方案


那应该行得通。我唯一能想到的是你myHeaderCell的没有设置为该部分的单元格。

而是一个headerView/cell。

如果你myHeaderCell在这里使用:

tableView(_:viewForHeaderInSection:)

那么您还应该将动画代码放入

tableView(_:willDisplayHeaderView:forSection:)

标题的委托方法对于单元格是不同的。

编辑:在您编辑的问题中,您不需要出列任何东西。我很惊讶没有产生错误。

您已经通过委托持有视图头实例。

直接使用视图实例。


推荐阅读