关于网易滚动菜单视图的实现
/**
* 监听顶部label点击
*/
- (void)labelClick:(UITapGestureRecognizer *)tap
{
// 取出被点击label的索引
NSInteger index = tap.view.tag;
// 让底部的内容scrollView滚动到对应位置
CGPoint offset = self.contentScrollView.contentOffset;
offset.x = index * self.contentScrollView.frame.size.width;
[self.contentScrollView setContentOffset:offset animated:YES];
}
当用户触发顶部按钮或者Label的时候,手动控制ScrollView的偏移量。此时会调用
scrollViewDidEndScrollingAnimation方法,不会调用scrollViewDidEndDecelerating方法。
/**
* scrollView结束了滚动动画以后就会调用这个方法
(比如- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated;方法执行的动画完毕后)
*/
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView
滑动页面视图,会调用scrollViewDidEndDecelerating代理方法,但是停止的时候不会调用
scrollViewDidEndScrollingAnimation。此时需要手动调用该代理方法。
/**
* 手指松开scrollView后,scrollView停止减速完毕就会调用这个
*/
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
[self scrollViewDidEndScrollingAnimation:scrollView];
}