- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
NSLog(@"开始滚动");
int currentPostion = scrollView.contentOffset.y;
if (currentPostion - _lastPosition > 20 && currentPostion >0) {
_lastPosition = currentPostion;
NSLog(@"ScrollUp now");
self.tabBarController.tabBar.hidden =YES;
[self.navigationControllersetNavigationBarHidden:YESanimated:YES];
}
else if ((_lastPosition - currentPostion >20) && (currentPostion <= scrollView.contentSize.height-scrollView.bounds.size.height-20) )
{
_lastPosition = currentPostion;
NSLog(@"ScrollDown now");
self.tabBarController.tabBar.hidden =NO;//隐藏时,没有动画效果
[self.navigationControllersetNavigationBarHidden:NOanimated:YES];
}
}
转载自:http://blog.csdn.net/caryaliu/article/details/7907196
自:在我的工程中,我是把 _lastPosition = 0; 然后把那个 25 改成了 160
有时候我们需要检测当前UIScrollView的滑动方向来做出相应的处理,可以借助UIScrollView的delegate函数来实现, 下面的例子可以检测到UIScrollview当前是向上滑动还是向下滑动:
- int _lastPosition; //A variable define in headfile
- - (void)scrollViewDidScroll:(UIScrollView *)scrollView{
- int currentPostion = scrollView.contentOffset.y;
- if (currentPostion - _lastPosition > 25) {
- _lastPosition = currentPostion;
- NSLog(@"ScrollUp now");
- }
- else if (_lastPosition - currentPostion > 25)
- {
- _lastPosition = currentPostion;
- NSLog(@"ScrollDown now");
- }
- }
25 可以是任意数字,可根据自己的需要来设定。