想了想,还是不上代码了,直接说思路。
在这里我们利用kvo观察tableView的contentOffset,首先判断何时tableView应该具备这个属性,如果tableView的contentInset没有一个屏幕的高度,那我们的这个动画也就没有必要显示了,所以tableView的contentOffset应该大于tableView的content距上边的距离,此时才可以具备这个属性。
在滑动过程中每次触发方法,记录最近的一次offset,比如:lastOffset,然后用当前的offset - lastOffset获得滑动过程中的差值,利用差值和CGAffineTransform的平移变换,进行动画的实现,利用MIN(x,y)来控制平移变换的高度。
这样就可以实现基本的需求了。