我为单元格添加了动画。
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
if indexPath.row > lastIndexPath.row{
cell.animate(up: lastIndexPath.row < indexPath.row ? true : false)
lastIndexPath = indexPath
}
}
动画功能:
func animate(up:Bool) {
self.alpha = 0
let transform = CATransform3DTranslate(CATransform3DIdentity, 0, up ? 200 : -200 , 0)
self.layer.transform = transform
UIView.animate(withDuration: 0.4, delay: 0.05, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: .curveEaseOut, animations: {
self.alpha = 1
self.layer.transform = CATransform3DIdentity
})
}
单元格的高度是200。
该动画效果很好,但是问题是在滚动时,直到动画完成后才检测到触摸。
即如果我向上滚动,然后要停止滚动,但是由于该动画,我无法在所需的单元格处停止滚动。