tabBar 的上拉隐藏,上拉显示实现

PushListView.h

@interface PushListView : UIView<UITableViewDelegate,UITableViewDataSource

{

      CGFloat contentOffsetY;

      CGFloat oldContentOffsetY;

      CGFloat newContentOffsetY;

}

...............................

PushListView.m

//开始拖拽视图

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView

{

    contentOffsetY = scrollView.contentOffset.y;

}

 // 滚动时调用此方法(手指离开屏幕后)

- (void)scrollViewDidScroll:(UIScrollView *)scrollView

{

    //NSLog(@"scrollView.contentOffset:%f, %f", scrollView.contentOffset.x, scrollView.contentOffset.y);

    newContentOffsetY = scrollView.contentOffset.y;

    if (newContentOffsetY > oldContentOffsetY && oldContentOffsetY > contentOffsetY) {  // 向上滚动

        NSLog(@"up");

    } else if (newContentOffsetY < oldContentOffsetY && oldContentOffsetY < contentOffsetY) { // 向下滚动

        NSLog(@"down");

    } else {

        NSLog(@"dragging");

    }

    if (scrollView.dragging) {  // 拖拽

        NSLog(@"scrollView.dragging");

        NSLog(@"contentOffsetY: %f", contentOffsetY);

        NSLog(@"newContentOffsetY: %f", scrollView.contentOffset.y);

        if ((scrollView.contentOffset.y - contentOffsetY) > 5.0f) {  // 向上拖拽

            // 隐藏导航栏和选项栏

            // [self layoutView];

            [_viewController.navigationController setNavigationBarHidden:YES animated:YES];

            //[_viewController.navigationController setToolbarHidden:!hidden animated:YES];

            _viewController.tabBarController.tabBar.hidden = YES;

        } else if ((contentOffsetY - scrollView.contentOffset.y) > 5.0f) {   // 向下拖拽

            // 显示导航栏和选项栏

            //[self layoutView];

            [_viewController.navigationController setNavigationBarHidden:NO animated:YES];

            //[_viewController.navigationController setToolbarHidden:NO animated:YES];

            _viewController.tabBarController.tabBar.hidden = NO;

        } else {

        }

    }

}

// 完成拖拽(滚动停止时调用此方法,手指离开屏幕前)

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate

{

    // NSLog(@"scrollViewDidEndDragging");

    oldContentOffsetY = scrollView.contentOffset.y;

}

这是 scorllView 里面的判断滑动方向的方法 在相应的方法中添加隐藏 tabBar 的方法即可.

时间: 2024-11-05 23:07:37

tabBar 的上拉隐藏,上拉显示实现的相关文章

iOS 上滑隐藏导航,下滑显示导航,仿斗鱼导航效果

UItableView或 UIcollectionView 都是继承UIScrollView 滑动的时候,判断是上滑还是下滑 使用 UIScrollView 的代理方法 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000 } span.s1 { color: #ba2da2 } span.s2 { } span.s3 { color: #703daa } func scrollViewWillEnd

Android 浮动按钮+上滑隐藏按钮+下滑显示按钮

1.效果演示 1.1.关注这个红色的浮动按钮 . 可以看到,上滑的时候浮动按钮消失,因为用户迫切想知道下面的东西,而不是回到顶部. 当下滑的时候,用户想回到原来的位置,就可以点击浮动按钮,快速回到顶部.所以浮动按钮弹上来了. 2.定义一个动画通用类AnimatorUtil 2.1.源代码如下 public class AnimatorUtil { private static LinearOutSlowInInterpolator FAST_OUT_SLOW_IN_INTERPOLATOR =

UIScrollView UITableView 上拉隐藏导航栏和tabbar 下拉显示导航栏和tabbar

//UIScrollView  UITableView 上拉隐藏导航栏和tabbar 下拉显示导航栏和tabbar-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{ CGPoint translation = [scrollView.panGestureRecognizer translationInView:scrollView.superview];    if

第一篇、实现上拉和下拉刷新

简介: 在iOS开发中,我们经常要用到下拉刷新和上拉刷新来加载新的数据,当前这也适合分页.iOS原生就带有该方法,下面就iOS自带的下拉刷新方法来简单操作. 功能: 1.下拉刷新(用系统自带的刷新控件实现) /** * 集成下拉刷新 */ -(void)setupRefresh { //1.添加刷新控件 UIRefreshControl *control=[[UIRefreshControl alloc]init]; [control addTarget:self action:@selecto

Maxwin-z/XListView-Android(下拉刷新上拉加载)源码解析(二)

转载请注明出处http://blog.csdn.net/crazy__chen/article/details/45980399 源文件下载地址http://download.csdn.net/detail/kangaroo835127729/8736887 本文主要是贴出xlistview的源代码和一个使用实例,没有过多讲解 使用实例,MainActivity public class MainActivity extends Activity { private LinkedList<Str

vue10行代码实现上拉翻页加载更多数据,纯手写js实现下拉刷新上拉翻页不引用任何第三方插件

vue10行代码实现上拉翻页加载更多数据,纯手写js实现下拉刷新上拉翻页不引用任何第三方插件/库 一提到移动端的下拉刷新上拉翻页,你可能就会想到iScroll插件,没错iScroll是一个高性能,资源占用少,无依赖,多平台的javascript滚动插件.iScroll不仅仅是 滚动.它可以处理任何需要与用户进行移动交互的元素.在你的项目中包含仅仅4kb大小的iScroll,你的项目便拥有了滚动,缩放,平移,无限滚动,视差滚动,旋转功能.iScroll的强大毋庸置疑,本人也非常欢迎大家使用iScr

手机影音第十三天,xutils3、Glide的使用获取网络图片;下拉、上滑刷新;缓存网络资源

代码已经托管到码云上,感兴趣的小伙伴可以下载看看 https://git.oschina.net/joy_yuan/MobilePlayer 本次的网络资源地址使用的是时光网的api接口,地址如下: http://api.m.mtime.cn/PageSubArea/TrailerList.api 效果如下: 一.Xutils3 的使用 去github上看详解:https://github.com/wyouflf/xUtils3 xUtils3简介 xUtils 包含了orm, http(s),

硅谷新闻6--下拉刷新/上拉加载更多

 1.添加加载更多布局 1_初始化和隐藏代码在RefreshListView构造方法中调用 private void initFooterView(Context context) { View footerView = View.inflate(context, R.layout.refresh_listview_footer, null); //隐藏代码 footerView.measure(0, 0); int footerViewHeight = footerView.getMeasur

自个儿写Android的下拉刷新/上拉加载控件

前段时间自己写了一个能够"通用"的,支持下拉刷新和上拉加载的自定义控件.可能现如今这已经不新鲜了,但有兴趣的朋友还是可以一起来看看的. 与通常的View配合使用(比如ImageView) 与ListView配合使用 与RecyclerView配合使用 与SrcollView配合使用 局部刷新(但想必这种需要实际应该还是不多的-.) 好啦,效果大概就是这样.如果您看后觉得有一点兴趣.那么,以下是相关的信息: GitHub地址: https://github.com/RawnHwang/S