在动画单元格时滚动时未检测到触摸(UITableview)

时间:2018-12-28 03:57:37

标签: ios swift uitableview

我为单元格添加了动画。

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。

该动画效果很好,但是问题是在滚动时,直到动画完成后才检测到触摸。

即如果我向上滚动,然后要停止滚动,但是由于该动画,我无法在所需的单元格处停止滚动。

0 个答案:

没有答案