UIScrollView滚动时隐藏底部导航栏问题
Posted yxysuanfa
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UIScrollView滚动时隐藏底部导航栏问题相关的知识,希望对你有一定的参考价值。
- (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当前是向上滑动还是向下滑动:
- 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 能够是随意数字,可依据自己的须要来设定。
以上是关于UIScrollView滚动时隐藏底部导航栏问题的主要内容,如果未能解决你的问题,请参考以下文章