当UITableViewCell即将离开UITableView

时间:2017-08-12 17:28:28

标签: ios swift uitableview

我想在即将离开视图时为UITableViewCell设置动画。我知道有一个didEndDisplayingcell函数,但到那时,为单元格设置动画为时已晚。因为它已经消失了。我基本上想要使用...来缩小单元格。

UIView.animate(withDuration: 0.2) {
    self.cellView.transform = CGAffineTransform(translationX: self.view.frame.size.width, y: 0)
}

...每当它回到屏幕上时,将其缩小回正常状态。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

不是一个完整的解决方案,但这可能会让你在那里:

self.tableView.indexPathsForVisibleRows

使用它来查找屏幕上的内容。

for path in self.tableView.indexPathsForVisibleRows! {
    //check if it's past a point on the screen
    //animate if needed
}

中检查这些条件
override func scrollViewDidScroll(_ scrollView: UIScrollView) {
    // call the function to check if cells pass a threshold
}

最后一位将进行设置,以便单元在第一次加载时完全可见,但之后它们将开始处于动画状态。

答案 1 :(得分:-1)

解决此问题的最佳方法是通过UITableViewDelegate方法检查单元格何时完成显示:

func tableView(UITableView, didEndDisplaying: UITableViewCell, forRowAt: IndexPath)
  

告诉代理人从表中删除了指定的单元格。