您的位置:首页 > 产品设计 > UI/UE

UIScrollView滚动时隐藏底部导航栏问题

2015-08-19 22:08 507 查看
- (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当前是向上滑动还是向下滑动:

[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 可以是任意数字,可根据自己的需要来设定。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: