用到scrollViewDidEndScrollingAnimation这个方法,起因是需求方提出要在界面滑动时隐藏某个东西,停止滑动时在显示出来。
在UIScrollViewDelegate的代理里面看到了如下方法:
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView; // called when setContentOffset/scrollRectVisible:animated: finishes. not called if not animating
具体实现之后发现并不调用,然后在度娘上面各种搜索scrollViewDidEndScrollingAnimation的实现,然后各种文章都是说要setAnimation,但是setAnimation在scrollview里面才能去实现,UITableView和UICollectionView里面没有具体的实现。
终于功夫不负有心人,在我老大的代码里面发现了,具体实现方式:
// 开始滑动时调用,只调用一次,手指不松开只算一次
// 这里方法也可以是scrollViewDidScroll
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{@"开始滑动时调用");// 如果调用 setContentOffset 为调用这个一次,// 如果调用 setContentOffset: animated 为调用这个多次// 但是最后都会调用 scrollViewDidEndScrollingAnimation/// 下面的方法是从网上看的。判断停止的方法[NSObject cancelPreviousPerformRequestsWithTarget:self];//enshore that the end of scroll is fired because apple are twats...[self performSelector:@selector(scrollViewDidEndScrollingAnimation:) withObject:nil afterDelay:0.3];}
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView
{[NSObject cancelPreviousPerformRequestsWithTarget:self];
}