iOS的UIScrollView滚动监测
在scrollView上面嵌套tableView的时候,有时需要监测tableview的滚动动画是否结束,再决定是否更新数据源,刷新界面,但是苹果并没有直接提供出这样的API出来,而scrollView的delegate里面,看起来也只有那么几个好像可以的!~
// 这个代理表示手指离开了scrollView,第二个参数用于判断滚动速度是否正在下降。
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;
// 这个方法觉得像是停止减速。但是从注释上,“called when scroll view grinds to a halt”---> 突然停止的时候才会被调用,而我们要的是“自然停止”时被调起的方式。
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView;
// 这个是指scrollView停止滚动动画的时候调用,但是debug的时候会发现怎么滑动都没有跑进来啊!!除非是手动调用scrollViewDidEndScrollingAnimation···
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView; // called when setContentOffset scrollRectVisible:animated: finishes. not called if not animating
发现
因为业务需要,在每次滚动完全结束后才去刷新数据,包括了手动拖拽和点击两种情况的滚动,为了避免滚动过程中持续发送通知于是需要得到已经结束滚动切换到另一个界面时发送,便找到了个方式
more >>
