- (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
自:在我的project中,我是把 _lastPosition = 0。 然后把那个 25 改成了 160
有时候我们须要检測当前UIScrollView的滑动方向来做出对应的处理,能够借助UIScrollView的delegate函数来实现。 以下的样例能够检測到UIScrollview当前是向上滑动还是向下滑动:
[cpp] view
plaincopy
- 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 能够是随意数字,可依据自己的须要来设定。