swift - 动画多个原型表视图单元格
问题描述
我有两个原型单元格myTableView
,即myTableViewCell
和myHeaderCell
。我正在使用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
})
}
解决方案
那应该行得通。我唯一能想到的是你myHeaderCell
的没有设置为该部分的单元格。
而是一个headerView/cell。
如果你myHeaderCell
在这里使用:
tableView(_:viewForHeaderInSection:)
那么您还应该将动画代码放入
tableView(_:willDisplayHeaderView:forSection:)
标题的委托方法对于单元格是不同的。
编辑:在您编辑的问题中,您不需要出列任何东西。我很惊讶没有产生错误。
您已经通过委托持有视图头实例。
直接使用视图实例。
推荐阅读
- codeigniter - 获取每位用户的佣金总额/总和并显示
- javascript - Laravel 8 Javascript函数不适用于表单标签
- sql-server - 将 ADO.NET 传递给存储过程时如何指定日期格式?
- java - 垂直和对角循环遍历矩阵
- php - codeigniter form_hidden 不发布数据
- java - 如何使用 nio 将阅读器写入文件?
- c# - 如何在列表c#中查找包含n个或更多顺序重复项的组
- openssl - 我想在 Contiki OS 的 Cooja 模拟器中使用 OpenSSL,但我无法集成它
- amazon-web-services - AWS Auto Scaling Fargate 任务根据 SQS 队列长度向上或向下
- swift - cvPixelBuffer 到 CGImage 的转换只给出黑白图像