自:我的真实的已经实现的,这个可以当到达顶部或底部时不会反弹,PERFERCT!!!
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
int currentPostion = scrollView.contentOffset.y;
if (currentPostion -_lastPosition > 20 && currentPostion >0) { //这个地方加上 currentPostion > 0 即可)
_lastPosition = currentPostion;
NSLog(@"ScrollUp now");
[self hideTabBar:YES];
[self.navigationControllersetNavigationBarHidden:YESanimated:YES];
}
else if ((_lastPosition - currentPostion > 20) && (currentPostion <= scrollView.contentSize.height-scrollView.bounds.size.height-20) ) //这个地方加上后边那个即可,也不知道为什么,再减20才行
{
_lastPosition = currentPostion;
NSLog(@"ScrollDown now");
[self hideTabBar:NO];
[self.navigationControllersetNavigationBarHidden:NOanimated:YES];
}
}
转载自:http://blog.youkuaiyun.com/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 可以是任意数字,可根据自己的需要来设定。
最后,欢迎大家远离我的微博:http://weibo.com/caryaliu